如何在与现有对象合并时使Play创建新ID(自动增量)

时间:2011-07-13 12:30:05

标签: java hibernate jpa playframework

现在我正在这样做,但似乎行不通。谢谢你的帮助。

   public static void submit(@Valid WrapSpec wrapSpec) { 
        if (validation.hasErrors()) { 
            render("@index", wrapSpec); 
        } 
 JPA.em().detach(wrapSpec); 
            wrapSpec.wrapSpecId = null; 
            WrapSpec wrapSpecNew = wrapSpec.merge(); 
} 

1 个答案:

答案 0 :(得分:1)

如果您在对象中使用Play的Model类,则会有一个名为" id"的自动自动增量字段。

重新分配此id的唯一安全方法是创建一个新对象并将旧对象的所有属性(期望id)复制到新对象,然后保存它。 JPA将分配新的ID。

任何其他方式都可能在JPA / Play中创建数据库不一致或意外行为。

出于好奇,您为什么要在分配后更改ID?我不明白它是如何有用的......