我有一个名为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批处理错误已修复,现在可以正常使用。问题是,如果您遇到错误(例如SQL语句等),则只会得到一个不会真正告诉您任何信息的通用异常。我喜欢做的是有一个可以在批处理模式下单独执行SQL查询的帮助程序类,当我从批处理模式收到奇怪的错误时,我将切换到单个查询。尝试一下,也许这只是SQL中的一个简单错误

关于java - HSQL中的GenericJDBCException,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7526729/

10-09 19:22