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; }