【问题标题】:Can't mapping boolean value with added new column in hibernate annotation无法使用休眠注释中添加的新列映射布尔值
【发布时间】:2015-07-22 03:22:35
【问题描述】:
@Column(columnDefinition="boolean default false")

public boolean getusernameChange() {
    return usernameChange;
}
public void setusernameChange(boolean usernameChange) {
    this.usernameChange =usernameChange;
}

上面的方法是用@Entity注解实现的。

【问题讨论】:

    标签: java spring hibernate orm annotations


    【解决方案1】:

    删除旧列并使用以下@Column 注释进行更新

     @Column(name="USER_CHANGE", columnDefinition = "tinyint default false")
    

    【讨论】:

      【解决方案2】:

      试试

      @Type(type = "org.hibernate.type.NumericBooleanType")
      private Boolean usernameChange = false;
      
      public Boolean getUsernameChange() {
          return this.usernameChange;
      }
      
      public void setUsernameChange(Boolean usernameChange) {
          this.usernameChange = usernameChange;
      }
      

      【讨论】:

      • 嗨,我已经尝试过这种方法。一旦我获得初始数据库值并最终用户更改状态,然后我使用 session.merge() 方法将值更新到数据库中。但是,更新后的布尔数据不会反映在数据库中。使用 hibernate.hbm2ddl.auto=update 的休眠配置文件
      • hmmm...我有一个带有字段 @Column(name = "issystem", nullable = false, unique = false) @Type(type = "org.hibernate.type.NumericBooleanType") 的实体私有布尔isSystem; hibernate.hbm2ddl.auto=update 通过 sessionFactory.getCurrentSession().merge(obj) 更新字段并且它可以工作。可能会删除列并使用它启动休眠
      猜你喜欢
      • 2011-09-05
      • 2019-06-10
      • 1970-01-01
      • 2011-09-11
      • 2012-02-27
      • 2016-02-14
      • 1970-01-01
      • 2019-02-02
      • 2011-12-23
      相关资源
      最近更新 更多