急:一对一 配置问题,外键插不进去值,各位谢谢
156032zhang
2010-07-12
一个student表 一个身份证号表
public class Student { private String id; private String name; private String codeId;//作为外键连接code表 private Code code; 省略get/set } public class Code { private int id; private String code; private Student stu; 省略get/set } xml配置如下 <hibernate-mapping package="model"> <class name="Student" table="student" lazy="false"> <id name="id"> <generator class="native"/> </id> <property name="name" type="string"/> <property name="codeId" type="string"/> <one-to-one name="code" class="model.Code" cascade="all" fetch="join" /> </class> </hibernate-mapping> <hibernate-mapping package="model"> <class name="Code" table="code" lazy="false"> <id name="id"> <generator class="native"></generator> </id> <property name="code" type="string"/> <many-to-one name="stu" class="model.Student" unique="true" cascade="all" fetch="join" /> </class> </hibernate-mapping> 以下为前台得到值 然后session.save进去数据库 public String creat() { stu.getName(); code.getCode(); DaoImpl daoImpl=new DaoImpl(); daoImpl.creat(code); stu.setCode(code); code.setStu(stu); daoImpl.saveorupdate(stu); return "success"; } 其他都能插入值,请问各位 为什么student表里的codeId插不进去值呢?配置文件错了 还是哪写错了? 多谢了,已经折腾很久了。。就是弄不出来。。 |
|
llade
2010-07-12
配置文件明显有误。。。CodeId是外键,那就没必要把它配置为属性。
|
|
s-s-h
2010-07-12
llade 写道 配置文件明显有误。。。CodeId是外键,那就没必要把它配置为属性。
同意ls的 |
|
156032zhang
2010-07-13
正确的应该怎么配置啊。。。。。能帮忙写出来么
多谢了 |
|
llade
2010-07-13
<hibernate-mapping package="model">
<class name="Student" table="student" lazy="false"> <id name="id"> <generator class="native"/> </id> <property name="name" type="string"/> <one-to-one name="code" column="codeid" class="model.Code" cascade="all" fetch="join" /> </class> </hibernate-mapping> 不过,没有验证过,自己验证一下,或者参考Hibernate的文档。 |
|
javaxiang
2010-07-14
可以配成多对一的
|
|
kjj
2010-07-18
照着文档做都能做错,罚回去再做100遍!!!
|
|
pwm5712
2010-07-22
|
|
pwm5712
2010-07-22
|
|
林海之歌
2010-07-24
主对象Student
<one-to-one name="code" class="model.Code" cascade="all" /> 不需要fetch="join",一对一默认立即加载。 附属对象Code <hibernate-mapping package="model"> <class name="Code" table="code" lazy="false"> <id name="id"> <generator class="foreign"> <param name="property">stu</param> </generator> </id> <property name="code" type="string"/> <one-to-one name="stu" class="model.Student" cascade="none"> </one-to-one> </class> </hibernate-mapping> 两边都要配置one-to-one |