如下两段hibernate实体代码:
第一种注解放在字段上,第二种注解放在get方法上。当执行插入操作时,数据库中记录是不同的。
其中第一种方式插入的记录的NUMBER_INCREMENT字段值为2,第二种为4.
从这里我们可以推论出,hibernate会根据注解的位置来觉得提取实体属性的方式:是采用标准的JavaBean的get方法,还是直接采用放射。
@Entity
@Table(name = "NumberIncrement")
public class NumberIncrementModel implements Serializable {
/**
* serialVersionID.
*/
private static final long serialVersionUID = -1555659864049096945L;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Long id;
@Column(name = "NUMBER_INCREMENT")
private Integer numberIncrement;
public NumberIncrementModel(Integer numberIncrement) {
this.numberIncrement = numberIncrement;
}
}
@Entity
@Table(name = "JBPM4_NUMBER_INCRECMENT")
public class NumberIncrementModel implements Serializable {
/**
* serialVersionID.
*/
private static final long serialVersionUID = -1555659864049096945L;
private Long id;
public void setId(Long id) {
this.id = id;
}
public void setNumberIncrement(Integer numberIncrement) {
this.numberIncrement = numberIncrement;
}
private Integer numberIncrement;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
public Long getId() {
return id;
}
@Column(name = "NUMBER_INCREMENT")
public Integer getNumberIncrement() {
return numberIncrement + 2;
}
public NumberIncrementModel(Integer numberIncrement) {
this.numberIncrement = numberIncrement;
}
}
第一种注解放在字段上,第二种注解放在get方法上。当执行插入操作时,数据库中记录是不同的。
NumberIncrementModel numberIncrementModel = new NumberIncrementModel(2);
XXXService.insertNumberIncrecement(numberIncrementModel);
其中第一种方式插入的记录的NUMBER_INCREMENT字段值为2,第二种为4.
从这里我们可以推论出,hibernate会根据注解的位置来觉得提取实体属性的方式:是采用标准的JavaBean的get方法,还是直接采用放射。