嗨,我写过这样的代码
@Id @Column(nullable=false) @GeneratedValue(strategy=GenerationType.AUTO) public int getUserID() { return UserID; }
但我从 DAO 手动设置它,如“e.setUserID(01);” 插入。否则行不插入是否有任何过程可以将值获取到 id 并检索自动生成的值。我想我会得到一些帮助
嗨,我写过这样的代码
@Id @Column(nullable=false) @GeneratedValue(strategy=GenerationType.AUTO) public int getUserID() { return UserID; }
但我从 DAO 手动设置它,如“e.setUserID(01);” 插入。否则行不插入是否有任何过程可以将值获取到 id 并检索自动生成的值。我想我会得到一些帮助
使用 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
}
对命名约定要非常小心,并确保您的字段名称和类型与数据库中的字段名称和类型相匹配。
利用
@GenericGenerator(name="generator", strategy="increment")
@GeneratedValue(generator="generator")