首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

Hibernate投射字段注解位置的不同造成插入数据库结果不同

2012-10-25 
Hibernate映射字段注解位置的不同造成插入数据库结果不同如下两段hibernate实体代码:@Entity@Table(name

Hibernate映射字段注解位置的不同造成插入数据库结果不同
如下两段hibernate实体代码:

@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方法,还是直接采用放射。

热点排行