identity和assigned 的区别||org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save():

链接:https://blog.csdn.net/weixin_36380516/article/details/53726045

(侵删)

项目:

struts+hibernate

错误信息:

org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save():

原因:

id将uuid设置成assigned产生

修改方法:

assigned是自己分配id  系统不会分配 所以在后台进行save()时进行赋值

判断所存储的类有没有id  如果没有则为它赋值  这里赋的值为一个随机生成的UUID

String oid = time.getId();
        if(oid == null || "".equals(oid)) {
            time.setId(UUID.randomUUID().toString());
        }        
return TimeService.merge(time);

 

 

在用Hibernate的时候,当有表中的主键是库自动生成的时候将使用identity。而当是自己添加的时候则需要改为assigned。因为assigned是指指定的,分配的, 如果你不赋予他值,那么他是不能实现的. 需要人工,自己把某个东西赋予给它 所以是assigned 。

posted @ 2019-10-16 09:21  小半夏  阅读(196)  评论(0)    收藏  举报