Tag: autocommit

防止JBoss 7上的JNDI数据源的Oracle连接自动提交(Jeeves DBMS)

我目前在JBoss 7中使用Oracle JNDI数据源的自动提交设置有一个奇怪的情况。 大纲 我想部署的应用程序,我可以检查但不能更改,从连接池获取连接,并在某些语句后尝试提交。 显然,连接默认情况下autocommit设置为’true’,因此引发exception。 You cannot commit with autocommit set! 我不能做什么 由于我无法更改应用程序源,因此以下“解决方案”不适用: con.setAutoCommit(false); 我尝试了什么 我查看了standalone.xml的XML Schema,发现了数据源定义中的两个有希望的元素: false 但这被忽略了。 此外,我尝试使用具有以下属性的xa-datasource: false 但autoCommit属性属于连接,而不属于数据源,因此引发了PropertyNotFoundexception。 我的问题 如何在JBoss7下的JNDI数据源中将Autocommit设置为false,我错过了什么? 我的定义 jdbc:oracle:thin:@****:****:**** false oracle.jdbc 10 100 true false FailingConnectionOnly ***** ***** 5000 1 更新 代码片段: public AccessManager(jeeves.resources.dbms.Dbms dbms, SettingManager sm) throws SQLException { List operList = dbms.select(“SELECT * FROM Operations”).getChildren(); […]

为什么在Hibernate中不建议使用“hibernate.connection.autocommit = true”?

在Hibernate API中,有一个属性hibernate.connection.autocommit ,可以设置为true。 但是在API中,他们提到不建议像这样设置它: 为JDBC池连接启用自动提交(不建议这样做)。 为什么不推荐? 将此属性设置为true会产生什么不良影响?

大对象可能无法在自动提交模式下使用

我有一个Spring应用程序,它在PostgreSQL数据库上使用Hibernate。 我正在尝试将文件存储在数据库的表中。 它似乎将行存储在文件中(我只是在EntityManager上使用persist方法),但是当从数据库加载对象时,我得到以下exception: org.postgresql.util.PSQLException: Large Objects may not be used in auto-commit mode. 要加载数据,我正在使用MultipartFile瞬态属性,并在其setter中设置我想要保留的信息(byte [],fileName,size)。 我坚持的实体看起来像这个(我已经省略了其余的getter / setter): @Entity @Table(name=”myobjects”) public class MyClass { @Id @GeneratedValue(strategy=GenerationType.SEQUENCE, generator=”sequence”) @SequenceGenerator(name=”sequence”, sequenceName=”myobjects_pk_seq”, allocationSize=1) @Column(name=”id”) private Integer id; @Lob private String description; @Temporal(TemporalType.TIMESTAMP) private Date creationDate; @Transient private MultipartFile multipartFile; @Lob @Basic(fetch=FetchType.LAZY, optional=true) byte[] file; String fileName; String fileContentType; […]