使用Hibernate仅更新特定列

时间:2012-12-14 06:09:49

标签: java hibernate struts2 sql-update

我使用struts2作为前端,使用hibernate 3.0作为ORM。我想根据选定的下拉列表更新客户地址。除 PIN 外,所有字段都是强制性的。如果用户正在更新地址并将PIN保留为空白,则PIN也会更新状态,依此类推。 如果它是空白的,我不想更新 PIN 。如何实现这一点,Hibernate是否有任何更新特定列的内容。

if(getPin()==null||getPin()=="")
{
    @update(false)  //make update false
}

检查摘要以了解我的问题。enter image description here

2 个答案:

答案 0 :(得分:0)

你唯一需要做的就是

1)加载客户 2)将所有更改的字段复制到仍然管理的对象中,除非是空的

仅仅将分离的实体与空字段合并是不够的,因为hibernate无法判断您是否要删除它。

考虑使用类似Dozer的框架。

答案 1 :(得分:-1)

我建议你在对象中处理setPin(String pin)方法中的逻辑。

你可以这样做。

 public void setPin(String pin){
   if(pin != null && !pin.isEmpty()){
        this.pin = pin;
     }
 }