集合例子
来源:互联网 发布:175平台cs1.6数据查询 编辑:程序博客网 时间:2024/04/29 19:17
package eg;import java.util.Set;public class Parent { private long id; private Set children; public long getId() { return id; } private void setId(long id) { this.id=id; } private Set getChildren() { return children; } private void setChildren(Set children) { this.children=children; } .... ....}
这个类有一个Child
的实例集合。如果每一个子实例至多有一个父实例, 那么最自然的映射是一个one-to-many的关联关系:
<hibernate-mapping> <class name="Parent"> <id name="id"> <generator class="sequence"/> </id> <set name="children"> <key column="parent_id"/> <one-to-many class="Child"/> </set> </class> <class name="Child"> <id name="id"> <generator class="sequence"/> </id> <property name="name"/> </class></hibernate-mapping>
在以下的表定义中反应了这个映射关系:
create table parent ( id bigint not null primary key )create table child ( id bigint not null primary key, name varchar(255), parent_id bigint )alter table child add constraint childfk0 (parent_id) references parent
如果父亲是必须的, 那么就可以使用双向one-to-many的关联了:<hibernate-mapping> <class name="Parent"> <id name="id"> <generator class="sequence"/> </id> <set name="children" inverse="true"> <key column="parent_id"/> <one-to-many class="Child"/> </set> </class> <class name="Child"> <id name="id"> <generator class="sequence"/> </id> <property name="name"/> <many-to-one name="parent" class="Parent" column="parent_id" not-null="true"/> </class></hibernate-mapping>请注意
NOT NULL
的约束:create table parent ( id bigint not null primary key )create table child ( id bigint not null primary key, name varchar(255), parent_id bigint not null )alter table child add constraint childfk0 (parent_id) references parent
另外,如果你绝对坚持这个关联应该是单向的,你可以对
<key>
映射声明NOT NULL
约束:<hibernate-mapping> <class name="Parent"> <id name="id"> <generator class="sequence"/> </id> <set name="children"> <key column="parent_id" not-null="true"/> <one-to-many class="Child"/> </set> </class> <class name="Child"> <id name="id"> <generator class="sequence"/> </id> <property name="name"/> </class></hibernate-mapping>
另外一方面,如果一个子实例可能有多个父实例, 那么就应该使用many-to-many关联:
<hibernate-mapping> <class name="Parent"> <id name="id"> <generator class="sequence"/> </id> <set name="children" table="childset"> <key column="parent_id"/> <many-to-many class="Child" column="child_id"/> </set> </class> <class name="Child"> <id name="id"> <generator class="sequence"/> </id> <property name="name"/> </class></hibernate-mapping>
表定义:
create table parent ( id bigint not null primary key )create table child ( id bigint not null primary key, name varchar(255) )create table childset ( parent_id bigint not null, child_id bigint not null, primary key ( parent_id, child_id ) )alter table childset add constraint childsetfk0 (parent_id) references parentalter table childset add constraint childsetfk1 (child_id) references child
- 集合例子
- Apache rewrite例子集合
- Hibernate Set集合例子
- Apache rewrite例子集合
- Map集合---学习例子
- J2EE集合例子
- 浅析集合不安全例子
- 集合小例子
- cxfSpring集合例子
- Oracle 集合 bulk collect 例子
- C#集合的一些例子
- java集合的简单例子
- PL/SQL:记录 / 集合例子
- 集合小例子:第二集
- 集合小例子:第三集
- 一个练习集合的最佳例子!!(1)
- Hibernate Set集合映射简单例子
- Hibernate List集合映射简单例子
- TestNG 六 测试结果
- oracle 存储过程返回 表
- DataGridView单元格美化
- POJ 2362 Square dfs
- 形成性评价
- 集合例子
- 探索Android中的Parcel机制(上) .
- 安天肖新光:12月推出校园网络安全探云计划
- Usaco Restack
- HDU2212 DFS
- 做你喜欢做的事,财富会随之而来
- 第三方登录 腾讯QQ为例
- Linux性能测试 pmap命令
- Java连接数据库(1)