6

嗨,我写过这样的代码

@Id
@Column(nullable=false)
@GeneratedValue(strategy=GenerationType.AUTO)
public int getUserID() {
    return UserID; 
}

但我从 DAO 手动设置它,如“e.setUserID(01);” 插入。否则行不插入是否有任何过程可以将值获取到 id 并检索自动生成的值。我想我会得到一些帮助

4

2 回答 2

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

}

对命名约定要非常小心,并确保您的字段名称和类型与数据库中的字段名称和类型相匹配。

于 2012-04-11T12:47:36.967 回答
4

利用

@GenericGenerator(name="generator", strategy="increment")
@GeneratedValue(generator="generator")
于 2012-04-11T11:48:34.987 回答