【问题标题】:hibernate issues with composite primary key复合主键的休眠问题
【发布时间】:2011-10-28 00:21:41
【问题描述】:

我在使用 Hibernate 时遇到了一些问题。我们需要保存一个对象及其子对象。每个孩子都有一个复合主键。键的一个属性将由触发器插入。在调用 saveOrUpdate(Object) 之前,将在程序中设置另一个属性。

但我们无法保存对象。 Hibernate 抛出异常Same identifier is already exists in the session。

我试过session.clear(),但我得到了同样的例外。当我尝试session.merge()时,只保存了最后一个孩子,其他的都被忽略了。

【问题讨论】:

  • 能否发布您要保存的对象的hbm文件或java。

标签: java hibernate


【解决方案1】:

如果您在同一个 Hibernate Session 中不需要保存过的对象,您可以在使用 Session.evict() 保存后立即分离它们:

// children is the collection of detached children, ready to save
for (Child child : children){
    session.save(child);
    session.evict(child);
}

另外,Hibernate 论坛中的此条目可能会有所帮助:Before Insert Trigger and ID generator。您可以集成一个 AbstractPostInsertGenerator 的实现以满足您的需求。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-27
    • 2015-12-14
    • 2011-12-23
    相关资源
    最近更新 更多