hibernate之映射关系一对多(自身关联)
来源:互联网 发布:软件企业评估规范 编辑:程序博客网 时间:2024/06/08 08:42
自身关联注意的问题:
1、关联多的一方必须是只有一个父类节点,如果存在多个父类节点,那么就不能采用自身关联,(字段冗余数据太多)
2、自身关联可以节省表的设计、
3、一的一端为父节点,没有外键
4、多的一端为子节点,并且存在外键
5、关联一对多自身关联外键key、mary-to-one、指向同一个对象同时也是同一外键字段
代码配置:
1、创建表
create table t_user(
u_id varchar(255),
u_name varchar(255),
u_age Integer,
u_price double(5,2),
uc_id varchar(255),//外键
primary key(u_id)
);
2、java-pojo类
public class UserT implements Serializable{
private String id;
public String name;
private Integer age;
private double price;
//父类
private UserT userTsup;
//子类
private Set<UserT> userchild = new HashSet<UserT>();
public UserT(){}
省略get、set方法
}
3、配置文件
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.wolf.pojo.oneToone" auto-import="false">
<class name="UserT" table="t_user">
<!-- 多对一:只有单项 -->
<id name="id" column="u_id">
</id>
<property name="name" column="u_name"/>
<property name="age" column="u_age"/>
<property name="price" column="u_price"/>
<many-to-one name="userTsup" class="UserT" column="uc_id" lazy="false" cascade="all"></many-to-one>
<set name="userchild" table="t_user" cascade="all" >
<key column="uc_id"></key>
<one-to-many class="UserT"/>
</set>
</class>
</hibernate-mapping>
1、关联多的一方必须是只有一个父类节点,如果存在多个父类节点,那么就不能采用自身关联,(字段冗余数据太多)
2、自身关联可以节省表的设计、
3、一的一端为父节点,没有外键
4、多的一端为子节点,并且存在外键
5、关联一对多自身关联外键key、mary-to-one、指向同一个对象同时也是同一外键字段
代码配置:
1、创建表
create table t_user(
u_id varchar(255),
u_name varchar(255),
u_age Integer,
u_price double(5,2),
uc_id varchar(255),//外键
primary key(u_id)
);
2、java-pojo类
public class UserT implements Serializable{
private String id;
public String name;
private Integer age;
private double price;
//父类
private UserT userTsup;
//子类
private Set<UserT> userchild = new HashSet<UserT>();
public UserT(){}
省略get、set方法
}
3、配置文件
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.wolf.pojo.oneToone" auto-import="false">
<class name="UserT" table="t_user">
<!-- 多对一:只有单项 -->
<id name="id" column="u_id">
</id>
<property name="name" column="u_name"/>
<property name="age" column="u_age"/>
<property name="price" column="u_price"/>
<many-to-one name="userTsup" class="UserT" column="uc_id" lazy="false" cascade="all"></many-to-one>
<set name="userchild" table="t_user" cascade="all" >
<key column="uc_id"></key>
<one-to-many class="UserT"/>
</set>
</class>
</hibernate-mapping>
- hibernate之映射关系一对多(自身关联)
- hibernate一对多关系映射(自身关联)
- Hibernate4一对多关系映射(自身关联)
- hibernate映射总结详解: 映射一对多双向自身关联关系
- Hibernate映射 --- 自身跟自身的一对多关联
- hibernate映射一对多,双向关系[关联自身],初学例子四
- 精通Hibernate——映射一对多双向自身关联关系
- 映射Category一对多双向自身关联关系
- Hibernate 映射一对多关联关系
- hibernate 一对多 关系关联映射
- hibernate映射一对多双向关联关系
- hibernate的映射:一对多关联关系
- Hibernate 映射一对多关联关系
- Hibernate映射一对多的关联关系
- Hibernate关联关系映射(一对多/多对一)
- hibernate-关系映射(一对多单向关联)-9
- Hibernate -- 映射实体关联关系(一对多关联关系)
- Hibernate 关联映射 之 一对多单项关联 (一)
- Cocos2dx------touch事件
- DTFT和DFT有什么区别?(有空了再写)
- 周鸿祎:如何成为一名优秀的产品经理?
- Javascript高级程序设计第二版第十章--DOM--笔记
- GDB远程调试错误解决 使用GDB 7.2版本进行远程调试时出现:Remote ‘g’ packet reply is too long错误
- hibernate之映射关系一对多(自身关联)
- oracle学习之--7oracle数据库模型和三大范式
- Linux文件系统简介
- struts2中文件上传文件大小限制以及解决方法(common-FileUpload)
- zigbee 是怎样注册,产生,处理 按键事件的?
- 一位女上司写给自己下属的信
- 利用MSXML2.XMLHTTP的无刷新技术
- java object 转 json
- cif420格式的yuv视频帧间差异性