user表:
+-----------+------------+-------+------------+--------+
|Field Name | Field Type | size | Comment | index |
+-----------+------------+-------+------------+--------+
| id | INTEGER | 11 | 自动编号 | 主键 |
+-----------+------------+-------+------------+--------+
| bh | VARCHAR | 30 | 用户编号 | 外键 |
+-----------+------------+-------+------------+--------+
| name | VARCHAR | 20 | 用户姓名 | |
+-----------+------------+-------+------------+--------+
user_detail表:
+-----------+------------+-------+------------+--------+
|Field Name | Field Type | size | Comment | index |
+-----------+------------+-------+------------+--------+
| id | INTEGER | 11 | 自动编号 | 主键 |
+-----------+------------+-------+------------+--------+
| bh | VARCHAR | 30 | 用户编号 | 外键 |
+-----------+------------+-------+------------+--------+
| content | VARCHAR | 200 | 备注信息 | |
+-----------+------------+-------+------------+--------+
我想是这两张表实现外键user.bh = user_detail.bh的一对一关联,如何写hbm.xml和构造函数呢?我看了半天的书,都不明白,请高手帮忙
+-----------+------------+-------+------------+--------+
|Field Name | Field Type | size | Comment | index |
+-----------+------------+-------+------------+--------+
| id | INTEGER | 11 | 自动编号 | 主键 |
+-----------+------------+-------+------------+--------+
| bh | VARCHAR | 30 | 用户编号 | 外键 |
+-----------+------------+-------+------------+--------+
| name | VARCHAR | 20 | 用户姓名 | |
+-----------+------------+-------+------------+--------+
user_detail表:
+-----------+------------+-------+------------+--------+
|Field Name | Field Type | size | Comment | index |
+-----------+------------+-------+------------+--------+
| id | INTEGER | 11 | 自动编号 | 主键 |
+-----------+------------+-------+------------+--------+
| bh | VARCHAR | 30 | 用户编号 | 外键 |
+-----------+------------+-------+------------+--------+
| content | VARCHAR | 200 | 备注信息 | |
+-----------+------------+-------+------------+--------+
我想是这两张表实现外键user.bh = user_detail.bh的一对一关联,如何写hbm.xml和构造函数呢?我看了半天的书,都不明白,请高手帮忙
解决方案 »
- 求json转对象?
- 求高人帮忙,FCKeditor不会使用
- QQ邮箱可以绑定自己的域名拉
- 网页中的单选和多选如何用javascript进行校验?
- 有没有时间控件
- 大家看一下,关于 java.sql.SQLException:IO异常:end of TNS data channel......问题
- jsp页面运行的问题
- 敢问谁知道UEditor插件配置window.UEDITOR_HOME_URL
- getOutputStream() has already been called for this response
- 入门级JSP问题
- SSH 连续8次以上查询卡住了
- myeclipse中的编码和快捷键在哪里设置
public class User implements Serializable {
private Integer id; private UserDetail bh; private String name; /**
* @hibernate.id
* column="id"
* unsaved-value="null"
* generator-class="sequence"
* @hibernate.generator-param
* name="sequence"
* value="user_seq"
*/
public Integer getId() {
return id;
} public void setId(Integer id) {
this.id = id;
} /**
* @hibernate.many-to-one
* column="UserDetail_id"
* cascade="save-update"
* inverse="true"
* class="XXXX.XXXXX.UserDetail"
*/
public UserDetail getBh() {
return bh;
} public void setBh(UserDetail bh) {
this.bh = bh;
} /**
* @hibernate.property
* column="name"
*/
public String getName() {
return name;
} public void setName(String name) {
this.name = name;
}
}<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class
name="xxxx.xxxx.User"
table="User">
<id name="id"
column="id"
type="int"
unsaved-value="null" >
<generator class="sequence">
<param name="sequence">car_seq</param>
</generator>
</id>
<many-to-one
name="bh"
class="xxxx.xxxx.UserDetail"
cascade="save-update"
outer-join="auto"
column="UserDetail_id"
/>
<property
name="name "
type="java.lang.String"
column="name"
/>User_Detail我就不写了。按照上面写,上面实现的是1对1单向关联,通过User可以User.bh拿到UserDetail.如果要做双向,在User_Detail也添加<many-to-one> 因为<many-to-one>可以表术单向MANY-TO-ONE,ONE一端和ONE-TO-ONE,2端的关系。
private Integer id ;
private String name ;
private Integer age ;
private IDCard idCard ;
/**
getter和setter方法省略
*/
}package OneToOne;public class IDCard {
private Integer id ;
private String serial; private Integer expiry; private Person person; /**
getter和setter方法省略
*/
}Idcard.hbm.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
Mapping file autogenerated by MyEclipse - Hibernate Tools
-->
<hibernate-mapping>
<class name="OneToOne.IDCard" table="idcard">
<id name="id" column="id" type="java.lang.Integer">
<generator class="foreign">
<param name="property">person</param>
</generator>
</id> <one-to-one name="person"
class="OneToOne.Person" constrained="true">
</one-to-one> <property name="serial" type="java.lang.String">
<column name="serial" length="18" not-null="true" />
</property>
<property name="expiry" type="java.lang.Integer">
<column name="expiry" not-null="true" />
</property>
</class>
</hibernate-mapping>Person.hbm.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping>
<class name="OneToOne.Person" table="person">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="native"></generator>
</id>
<property name="name" type="java.lang.String">
<column name="name" length="20" not-null="true" />
</property>
<property name="age" type="java.lang.Integer">
<column name="age" />
</property>
<one-to-one name="idCard"
class="OneToOne.IDCard" cascade="all"
outer-join="true">
</one-to-one>
</class>
</hibernate-mapping>