@GeneratedValue Annotation,Constructor值

时间:2014-01-21 14:11:25

标签: java hibernate jaxb annotations jax-rs

在初始化对象时,我似乎无法找到有关如何使用GeneratedValue注释的任何文档。

这是我的对象类的id字段,我还有两个我遗漏的字段

@Id 
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@NotNull
@Column(name = "ID")
private BigDecimal id;

我的构造函数

public Pothole() {
}

public Pothole(BigDecimal id) {
    this.id = id;
}

public Pothole(BigDecimal id, byte[] image, Date pdate) {
    this.id = id;
    this.image = image;
    this.pdate = pdate;
}

我的id字段用什么?我把它留空吗

Pothole entity = new Pothole(???,decodedBytes, date);

2 个答案:

答案 0 :(得分:0)

是的,你应该把它留空,当Hibernate将实体保存在数据库中时(即执行insert语句),给定实体的id将被数据库评估(在您的情况下,id列将提供值)。 在实体持久化之前,“d”属性将保持为空。

答案 1 :(得分:0)

使用默认构造函数

 Pothole entity = new Pothole();
    entity.setImage(decodedBytes);
    entity.setPdate(date);