如何使用带有起始值的自动生成生成hibernate ID

时间:2012-04-11 06:29:05

标签: database hibernate annotations setter auto-generate

您好我已经编写了这样的代码

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

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

2 个答案:

答案 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")