您好我已经编写了这样的代码
@Id @Column(nullable=false) @GeneratedValue(strategy=GenerationType.AUTO) public int getUserID() { return UserID; }
但是我从DAO手动设置它就像“e.setUserID(01);”插入。否则行不插入是否有任何进程获取id的值并检索自动生成的值。我想我会得到一些帮助
答案 0 :(得分:5)
使用IDENTITY生成类型而不是auto。使用Long作为id。我还建议将名称从 UserID 更改为 userId 。不要忘记@Entity作为班级名称。
@Entity
public class MyClass{
private Long userId;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column
public Long getUserID(){
return userId;
}
//.. rest of class
}
对命名约定要非常小心,并确保您的字段名称和类型与数据库中的字段名称和类型相匹配。
答案 1 :(得分:4)
使用
@GenericGenerator(name="generator", strategy="increment")
@GeneratedValue(generator="generator")