我有两个表,一个user,一个是shop,shop里面有一个user_id作为外键引用user的主键id,并且在数据表里设置了user_id是unique的,一对一关系直接用hibernate生成的 代码如下:<one-to-one name="shop" class="dao.pojo.Shop" cascade="all" outer-join="true" constrained="true" >
</one-to-one>以上是user的配置,以下的是shop的: <one-to-one name="user" class="dao.pojo.User" ></one-to-one>保存的时候的代码:
Shop shop = new Shop( name, type, address, phone, bizHour, bizNum,
bizImg, hygieneNum, hyginenImg);
shop.setUser(user);
shopDao.save(shop);
DAO是hibernate直接生成的,没有改过,在页面调用的时候报错:
Field 'user_id' doesn't have a default value
一对一关系映射后,在shop实体里面没有user_id,只有user,在user实体里有shop。
</one-to-one>以上是user的配置,以下的是shop的: <one-to-one name="user" class="dao.pojo.User" ></one-to-one>保存的时候的代码:
Shop shop = new Shop( name, type, address, phone, bizHour, bizNum,
bizImg, hygieneNum, hyginenImg);
shop.setUser(user);
shopDao.save(shop);
DAO是hibernate直接生成的,没有改过,在页面调用的时候报错:
Field 'user_id' doesn't have a default value
一对一关系映射后,在shop实体里面没有user_id,只有user,在user实体里有shop。
给你一个实例
示例:
实体类
public class Person {
private int id;
private String name;
private IdCard idCard;
}
public class IdCard {
private int id;
private String cardNo;
}
Person映射文件
<class name="Person" table="t_person">
<id name="id" length="32">
<generator class="native"></generator>
</id>
<property name="name" not-null="true" length="20"/>
<many-to-one name="idCard" unique="true" />
</class>
IdCard映射文件
<class name="IdCard" table="t_idcard">
<id name="id" column="id" length="32">
<generator class="native"/>
</id>
<property name="cardNo" not-null="true" length="20"/>
</class>