我有一个客户表,其中有 3 列,即 id、name 和 age。
如果我创建一个没有年龄的客户对象,即我没有设置任何年龄值,那么如果表中存在相同的客户(由客户 ID 标识),则 saveOrUpdate() 将年龄列更新为 0。我我希望避免年龄列值被零或空值覆盖(如果表中已经存在)。例如,根据下面粘贴的代码片段,如果客户 ID 10 已经存在具有某些年龄值的行,那么在这种情况下,我的年龄不应该被零覆盖。
我在谷歌上搜索,发现我可以将 dynamicUpdate 设置为 true 来实现这一点。但是在执行代码时,我的年龄值仍然被 0 覆盖。我正在粘贴代码片段
@Entity
@Table(name = "CUSTOMER")
@org.hibernate.annotations.Entity(
dynamicUpdate = true
)
public class Customer {
@Id
@GeneratedValue
@Column(name = "CUSTOMER_ID")
private int custId;
@Column(name = "CUSTOMER_NAME")
private String custName;
@Column(name = "CUSTOMER_AGE")
private int custAge;
............
...........
Customer cust = new Customer();
cust.setCustId(10);
cust.setCustName("anand");
session.saveOrUpdate(cust);
tx.commit();