ids for this class must be manually assigned before calling save():

Caused by: javax.persistence.PersistenceException: org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save(): com.cjonline.ship.entity.TBLMyRecents
    at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:629)
    at org.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:218)
    at org.jboss.ejb3.entity.TransactionScopedEntityManager.persist(TransactionScopedEntityManager.java:182)
    at com.cjonline.ship.dao.base.BaseDaoBean.save(BaseDaoBean.java:58)

这个异常比较简单,就是实体类的id在执行save方法时没有赋值。

可以设置主键的策略模式,常见的UUID和自增长,在EJB中如下:

@Id
    @GenericGenerator(name = "system-uuid", strategy = "uuid")
    @GeneratedValue(generator = "system-uuid")
    @Column(length = 32,nullable=false)
    public String getId() {
        return id;
    }

//-------------------------------------------------//

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
public String getId() {
        return id;
}
原文地址:https://www.cnblogs.com/lbangel/p/3510565.html