hibernate 四张表的关联的配置文件

njliuqi 2008-10-09 03:32:12
有四张表,数据类型大概是:
表A : a_id(主键);
表B : b_id(主键), a_id(主键), c_f_key(外键,与表C的主键关联), d_f_key(外键,与表D的主键"d_id"关联)
表C : c_id(主键), a_id(主键),
表D(主表) : d_id;

对应关系:
A 1 : n B
A 1 : n C
B n : 1 C
B n : 1 D

举例说明:表A 是项目表, 表B 是项目产品表, 表C 是产品技能表, 表D是产品类型主表
一个项目包含多个产品,
一个项目可以包含多种技能(c++, java, c#....)
每个产品对应一种类型,一种类型可以对应多个产品
每个产品对应一种技能,一种技能可以对应多个产品

四个java 文件是

Class A{
private int a_id;
private Set <B> bSet;
private Set <C> cSet
}
class B{
private String b_id;
private int a_id;
private int c_f_key;
private int d__f_key;
private C c;
private D d;
}

class C{
private int a_id;
private int c_id;
private Set<B> bSet;
}

class D{
private int d_id;
private Set<B> bSet;
}

四个*.hbm.xml配置文件

a.hbm.xml
<class name="A" table="表A">
<id name="a_id" column="a_id">
<generator class="sequence"/>
</id>
<set name="bSet">
<key column="b_id"/>
<one-to-many class="B"/>
</set>
<set name="cSet">
<key column="c_id"/>
<one-to-many class="C"/>
</set>
</class>

b.hbm.xml
<class name="B" table="表B">
<id name="b_id" column="b_id">
<generator class="native"/>
</id>
<many-to-one name="c" column="c_id" class="C"/>
<many-to-one name="d" column="d_id" class="D"/>
</class>

c.hbm.xml
<class name="C" table="表C">
<id name="c_id" column="c_id">
<generator class="native"/>
</id>
<set name="bSet">
<key column="b_id"/>
<one-to-many class="B"/>
</set>
</class>

d.hbm.xml
<class name="D" table="表D">
<id name="d_id" column="d_id">
<generator class="native"/>
</id>
<set name="bSet">
<key column="b_id"/>
<one-to-many class="B"/>
</set>
</class>

大概内容就是这个吧,用HIBERNATE能实现吗?
特别是联合主键,外加级联保存。
我现在是对表B进行CRUD
...全文
113 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Dave 2008-10-09
  • 打赏
  • 举报
回复
hibernate有自动的反转,能将表转成对应的映射文件,比较方便。能自动搞定这些复杂的关系,不过有时需要检查下。不应定全部正确。
mhjzqq923 2008-10-09
  • 打赏
  • 举报
回复
帮顶

CRUD 是什么意思啊?

“大概内容就是这个吧,用HIBERNATE能实现吗? ”
你都写好关联配置文件了,生成pojo就可以了
案例目录: 01 01Hibernate_Handwork : 手工配置使用Hibernate,其中详细标了Hibernate进行持久化的一些过程,因为是Hibernate的入门实例,所以注释很详细,其中有session的关闭后重建问题。 02 02Hibernate_UseMyEclipse: 利用工具来配置使用Hibernate,注意要修改的内容部分。 03 03Hibernate_Component : 实体细粒度的划分,数据库中的一张在程序中划分为几个部分的实体,配置文件和增、删、改、查的使用。 04 04Hibernate_Composite : 复合主键的使用,在开发中很少用到,一般良好的设计都会为一个添加一个自动增长的主键标识列。其中重点配置方法和Hibernate中普遍采用的方法链编程的使用。还需注意可以将组合主键构建成一个实体,这样在编程时更加直观。 05 05Hibernate_EntityLayerDesign : 实体层的设计,演示两种情况: 1) 数据库:一张主,两张子,子共用主数据,即外键关系 实体层设计:一个父类,两个子类,子类继承父类, 配置文件:只配置父类的映射文件,在其中加入joined-subclass将两个子类实体映射关系添加 2) 数据库:一张,包括公共字段、特有字段、区分字段 实体层设计:与第一种方法设计一样,设计三个实体类,分父类和子类 配置文件:依然只配置父类的映射文件,加入discriminator和subclass元素加入子类的映射关系 06 06Hibernate_Collection : Hibernate的容器映射技术,包括list、set和map等。用法大体一致,数据库中的两张,在实体层设计和配置文件都只有一个 其中数据库用到级联删除。配置文件分别用list、set和map元素配置第二张。 07 07Hibernate_Mapping : Hibernate中的数据关联技术,是一个重点又是一个难点,演示了 一对一、多对一、一对多、多对多等几种情况。

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧