你只要在你的实体里面把这个字段设置成boolean类型的就可以了啊
@Entity
public class Employee {
private Boolean visible = true;
public Boolean getVisible() {
return visible;
}
public void setVisible(Boolean visible) {
thisvisible = visible;
}
} 当然里面还必须有一个主健id了
你好,这样是可以的,和你写的代码一样,如果有两个属性同时映射到一个列,那么其中一个属性就必须设置为insert=false,update=false,我觉得你代码这样设计,最好是把userId设置为insert=false,update=false,而让hibernate去管理user的关系。还有,这个根本没有违反什么约束,只是说这种设计方法不算太好。
解决方法:
在hibernate映射文件对数据库表的描述中,在当前字段处加入insert="false"语句,这时hibernate在进行插入 *** 作时,只会为那些有实值的字段赋值,而值为空白的字段就会使用数据库表中定义的默认值了。
举例说明,表person:
CREATE TABLE address (i_id int(11) NOT NULL auto_increment,
c_address varchar(100) NOT NULL default '中国',
PRIMARY KEY (id)
)
addresshbmxml:
<hibernate-mapping package="cncomloughmodel">
<class
name="address "
table="address "
lazy="false"
>
<meta attribute="sync-DAO">true</meta>
<cache usage="read-write"/>
<id
name="IId"
type="integer"
column="i_id"
>
<generator class="native"/>
</id>
<property
name="C_Address"
column="c_address "
type="string"
not-null="false"
length="128"
/>
</hibernate-mapping>
运行程序
public regAddress(String a){ //传入的值a未在网页文本框里获得任何值(家庭地址)
Address p = new Address ();
psetAddress(a);
HiFactorysave(p);
}
此时hibernate生成的sql语句为insert into person(c_address) values('');
数据库表结果为
i_id c_address
1 null
修改addresshbmxml为:
<hibernate-mapping package="cncomloughmodel">
<class
name="Address"
table="address"
lazy="false"
>
<meta attribute="sync-DAO">true</meta>
<cache usage="read-write"/>
<id
name="IId"
type="integer"
column="i_id"
>
<generator class="native"/>
</id>
<property
name="C_Address"
column="c_address"
type="string"
not-null="false"
length="128"
insert="false"
/>
</hibernate-mapping>
再次运行程序,此时hibernate生成的sql语句为 insert into address() values();
正常情况下,vlookup映射出的结果就是链接内容,不是d,e,f中的数值内容。
即当sheet2中的g,h,i变化时,sheet3中vlookup的结果也是同时变化的。
如果不变,请看一下“自动重算”是否被关闭。
以上就是关于Hibernate JPA 如何映射boolean到mysql数据库全部的内容,包括:Hibernate JPA 如何映射boolean到mysql数据库、hibernate问题:数据库中的一个外键字段可以在实体中用多个属性去映射么、hibernate映射数据库表如何使表中字段默认值生效等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)