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方法,还是直接采用放射。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值