在我的Hibernate应用程序中,我正在使用创建ValueObject类

@Entity
@Table(name="user")
public class UserVO{

    @Id
    @Column(name="S_ID")
    private String s_id;

    @Column(name="FIRSTNAME")
    private String firstName;

    @Column(name="LASTNAME")
    private String lastName;
 }

在我的服务课上,我这样写
public void createOrUpdateUser(UserVO userVO) {
        userDAO.createOrUpdateUser(userVO);
    }

在我的DAO课上,我这样写
private EntityManager entityManager;
public void createOrUpdateUser(UserVO userVO) throws DataAccessException {
        entityManager.persist(userVO);
    }

现在我打电话给createOrUpdateUser(userVO)但它给错误
Caused by: org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save()

其实我的数据库我已经为trigger表创建了一个user来为s_id列生成唯一的ID是他们的触发器问题。请建议我..

最佳答案

ID列不得为null,无论您在数据库驱动程序中执行什么操作,都只会在插入或任何其他操作之前/之后被触发,但是根据错误,它会在出现任何错误之前给出错误。

设置一些ID值或尝试一些操作
@GeneratedValue(strategy = GenerationType.IDENTITY)

10-08 02:05