Spring + Hibernate会话生命周期

应该如何正确地完成Spring下Hibernate会话的“生命周期”? SessionFactory由Spring自动创建,并从Glassfish连接池获取其数据库连接。 目前我通过SessionFactory.getCurrentSession()获得Hibernate会话。 然后我开始事务,完成工作,然后在最后rollback() commit()或rollback() 。 我是否需要随时执行任何其他操作,例如disconnect() , close() , flush()或任何其他操作,以便将连接正确地返回到池中,或者Spring已经自动完成了所有操作? 有了很多这些方法,我现在有点困惑,要了解应该做什么,也许有人可以指向正确的方向?

在Java DOM文档中设置名称空间和前缀

我正在尝试将ResultSet转换为XML文件。 我首先使用这个例子进行序列化。 import org.w3c.dom.bootstrap.DOMImplementationRegistry; import org.w3c.dom.Document; import org.w3c.dom.ls.DOMImplementationLS; import org.w3c.dom.ls.LSSerializer; … DOMImplementationRegistry registry = DOMImplementationRegistry.newInstance(); DOMImplementationLS impl = (DOMImplementationLS)registry.getDOMImplementation(“LS”); … LSSerializer writer = impl.createLSSerializer(); String str = writer.writeToString(document); 在我完成这项工作后,我尝试validation我的XML文件,有几个警告。 一个关于没有doctype的人。 所以我尝试了另一种方法来实现它。 我遇到了Transformer课程。 这个类让我设置编码,doctype等。 以前的实现支持自动命名空间修复。 以下不是。 private static Document toDocument(ResultSet rs) throws Exception { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); factory.setNamespaceAware(true); DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = […]

如何在JSTL中正确拆分字符串?

如何使用JSTL在jsp页面内拆分用“/”分隔的字符串? 我有一个这种格式的字符串:** “23/11/2010” * 。 有时,字符串可能是这样的:* “1/1/2010” * 。 我需要做一些事情,以便将字符串分成三个不同的子串:* “23”,“11”,“2010”。 **这是因为我需要将它们中的每一个放在三个不同的文本字段中,如下所示: / / 我还找不到任何有用的例子。 提前致谢!

推断的返回类型的通配符generics

Java通常可以根据参数推断generics(甚至在返回类型上,与例如C#相反)。 举个例子:我有一个generics类Pair ,它只存储一对值,可以按以下方式使用: Pair pair = Pair.of(“Hello”, “World”); 看起来像这样的方法: public static Pair of(T1 first, T2 second) { return new Pair(first, second); } 非常好。 但是,这不再适用于以下需要使用通配符的用例: Pair<Class, String> pair = Pair.of((Class) List.class, “hello”); (注意显式List.class以使List.class成为正确的类型。) 代码失败,出现以下错误(由Eclipse提供): 类型不匹配:无法从TestClass.Pair<Class,String>为TestClass.Pair<Class,String> 但是,显式调用构造函数仍然按预期工作: Pair<Class, String> pair = new Pair<Class, String>((Class) List.class, “hello”); 有人可以解释这种行为吗? 它是按设计的吗? 它需要吗? 我做错了什么或者我偶然发现编译器中的设计/错误存在缺陷? 狂野猜测:“捕获#1-of?”似乎暗示通配符由动态编译器填充,使类型成为Class ,从而使转换失败(来自Pair<Class, String> Pair<Class, String> )。 这是正确的吗? […]

如何在java中获取以前的日期

我有一个格式为yyyyMMdd的字符串对象。有一种简单的方法来获取具有相同格式的前一个日期的字符串吗? 谢谢

char中的char初始值

初始化方法中定义的int变量,使其值为0直到计算int特定值。 什么可以初始化char值? char retChar = ”; 这给出了一个错误,如果我初始化为-1则表示字符过多。

如何用回车创建一个String?

对于JUnit测试,我需要一个由多行组成的String。 但我得到的只是一个单行字符串。 我尝试了以下方法: String str = “;;;;;;\n” + “Name, number, address;;;;;;\n” + “01.01.12-16.02.12;;;;;;\n” + “;;;;;;\n” + “;;;;;;”; 我也试过\n\r而不是\n 。 System.getProperty(“line.separator”)也不起作用。 它在String中生成一个\n而没有回车符。 那我怎么解决呢?

如何检测是否在Swing中切换大写锁定?

我正在尝试为我的工作场所建立一个更好的用户名/密码字段,并希望能够在他们的大写锁定时抱怨。 这可能吗? 如果是这样,我想在客户输入他们的第一个字母之前检测到它。 是否有非平台特定方式来执行此操作?

并行flatMap总是顺序的

假设我有这个代码: Collections.singletonList(10) .parallelStream() // .stream() – nothing changes .flatMap(x -> Stream.iterate(0, i -> i + 1) .limit(x) .parallel() .peek(m -> { System.out.println(Thread.currentThread().getName()); })) .collect(Collectors.toSet()); 输出是相同的线程名称,因此这里parallel没有任何好处 – 我的意思是,有一个线程可以完成所有工作。 在flatMap里面有这样的代码: result.sequential().forEach(downstream); 我理解强制sequential属性如果“外部”流是并行的(它们可能会阻塞),“外部”将不得不等待“flatMap”完成,反过来(因为使用相同的公共池)但是为什么总是强迫呢? 这是那些可能在以后的版本中发生变化的事情之一吗?

双原语类型数据的意外行为

我想了解Java double类型如何在Java中将其值存储在内存中。 当我运行以下代码时,我得到意外的输出: public static void main(String[] args) { float a = 1.5f; float b= 0.5f; double c= 1.5; double d = 0.5; float a1 = 1.4f; float b1= 0.5f; double c1= 1.4; double d1 = 0.5; System.out.println(” a- b is ” + (ab)); System.out.println(” c- d is ” + (cd)); System.out.println(“a1-b1 is ” + […]