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

时间:2021-12-16 14:26:05
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:)
at org.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:)
at org.jboss.ejb3.entity.TransactionScopedEntityManager.persist(TransactionScopedEntityManager.java:)
at com.cjonline.ship.dao.base.BaseDaoBean.save(BaseDaoBean.java:)

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

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

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