【发布时间】:2011-09-23 09:14:42
【问题描述】:
我有一个名为ProdTransaction 的实体。我正在保存两条ProdTransaction 类型的记录。两个插入都在独立运行时成功。我是说
tranDAO.save(record1) //alone works
tranDAO.save(record2) //alone works
但一起运行它们
tranDAO.save(record1)
tranDAO.save(record2)
HSQL 抛出 GenericJDBCException 错误。
@Entity
@Table(name = "ProdTransaction")
public class ProdTransactionextends PersistentObject implements Serializable {
private static final long serialVersionUID = 1L;
@Embedded
private ProdTranPK id;
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE)
@Column(name = "REC_ID")
private Long recId;
@Temporal(TemporalType.DATE)
private Date date1;
@Column(length = 1)
private String comment;
}
我已经验证了数据,一切都很好。当我运行 HSQL 时,我得到:
GenericJDBCException:无法执行 JDBC 批量更新。
但是,如果我连接到我的物理数据库,并以相同的顺序运行,它就可以正常工作。 HSQL 中可能有什么问题?我使用的是 1.8 版。
【问题讨论】:
-
HSQLDB 确实支持批处理。尝试在每个语句之后添加刷新。还添加日志记录以查看将要发送到 HSQLDB 的确切 SQL 并将其直接复制粘贴到 HSQLDB 服务器中。