Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JPA&x2B;冬眠+;自动提交_Java_Hibernate_Jpa - Fatal编程技术网

Java JPA&x2B;冬眠+;自动提交

Java JPA&x2B;冬眠+;自动提交,java,hibernate,jpa,Java,Hibernate,Jpa,有人知道为什么我在JPA配置文件中关闭自动提交时会收到此警告吗 使用此设置: <property name="hibernate.connection.autocommit" value="false"/> 这将如何打破EJB3规范?来自EJB3.0规范第13.3.4节: 企业bean的业务 方法,消息侦听器方法, 业务方法拦截器方法、生命周期回调拦截器 方法或超时回调方法 不得使用任何资源管理器 特定交易管理方法 这会影响到整个过程 集装箱分界线 交易边界。例如 企业bean方法

有人知道为什么我在JPA配置文件中关闭自动提交时会收到此警告吗

使用此设置:

<property name="hibernate.connection.autocommit" value="false"/>

这将如何打破EJB3规范?

来自EJB3.0规范第13.3.4节:

企业bean的业务 方法,消息侦听器方法, 业务方法拦截器方法、生命周期回调拦截器 方法或超时回调方法 不得使用任何资源管理器 特定交易管理方法 这会影响到整个过程 集装箱分界线 交易边界。例如 企业bean方法不能使用 java.sql.Connection接口:提交, 设置自动提交,并回滚;或采用以下方法: javax.jms.Session接口:提交和 回滚


我没有这样的方法,只有在JPA配置中设置hibernate.connection.autocommit=true时才会出现消息。hibernate可能会调用该方法本身。我猜你不需要指定autocommit=false,我对此不确定。下面是代码的样子://some spec compliance checking 857//TODO centralize that?858如果(!“true”.equalsIgnoreCase(cfg.getProperty(Environment.AUTOCOMMIT)){859 log.warn(Environment.AUTOCOMMIT+“=false)破坏EJB3规范”);860}还有来自文档的内容:hibernate.connection.AUTOCOMMIT:为JDBC池连接启用自动提交(不推荐)。对|错我认为这只是一个警告,正如Miguel指出的(不确定是否仍在使用),而且由于您必须启动一个事务,这现在就没有意义了。好吧,结果不是很好,注释中的代码不起作用。结论:不需要它,即使插入一条记录,您也必须启动一个事务(如果不需要,您会得到一个异常)。我仍然找不到一份文件说这是过时的(或者更好的解释)。
2009-08-04 09:54:10,621 [main] WARN org.hibernate.ejb.Ejb3Configuration - hibernate.connection.autocommit = false break the EJB3 specification