Hibernate如何一个类映射两个表

一个User类有username,password属性,还有 otherInformation等其他属性,username和password映射到一个表,otherInformation等其他属性映射到另一 个表,使用User类时不会感觉到是两个表的的存在,如何配置User.mapping.xml文件进行配置??

这叫“Table per subclass”:

Xml代码  收藏代码

    <class name="Base" table="表1">
        <id name="id" type="long" column="BASE_ID">
            <generator class="native"/>
        </id>
        <property name="username" column="username"/>
        <property name="password" column="password"/>
        ...
        <joined-subclass name="User" table="表2">
            <key column="BASE_ID"/>
            <property name="otherInformation" column="otherInformation"/>
            ...
        </joined-subclass>  

    </class>  
时间: 2024-10-26 07:25:37

Hibernate如何一个类映射两个表的相关文章

hibernate中持久化类映射到数据表的注意事项。

在web项目中,我们用到hibernate的话要先在用java语言创建一个持久化的bean类,然后在映射到数据库中的表! 在这里我要说的是这个数据表的创建 应该使用SQL的DDL语言来完成,不要用management studio,我在做项目的时候用management studio建表导致id主键和java持久化类当中的id不匹配.报了很多错误,所以写此随笔作为警示. 我的栗子! 先贴我的映射文件 1 <?xml version="1.0" encoding="UTF

【SSH快速进阶】——Hibernate继承映射:每个具体类映射一张表

上篇文章说的是每个类映射一张表,不管是父类还是子类.与上篇文章不同的是,这里是每个"具体类"映射一张表,什么意思呢?就是让每个子类(具体的.有意义的类)映射一张表. 场景 与上篇文章场景一样,如下类图 上图中Pig类和Bird类继承Animal类,要让每个具体类映射一张表,就是只映射Pig和Bird,如下表所示: (表 1) 上面的表有个特点就是,t_pig和t_bird的主键永远都不会相同.因为表面上看起来这是两张表,但实际上存储的都是动物(同一类型),所以还可以看做是一张表. 配置

【SSH快速进阶】——Hibernate继承映射:每个类映射一张表

上文说了每棵继承树映射一张表,本文继续描述让每个类都映射一张表的配置. 场景 与上篇文章场景一样,如下类图 上图中Pig类和Bird类继承Animal类,要让每个类映射一张表,就是让着三个类都分别映射一张表,但同时这三张表也跟对应的三个类似的,有继承关系,如下表所示: (表 1) Pig和Bird的记录都表示一个动物,因此都会在Animal对应的表中存储,而它们各自的拓展属性则存储在各自对应的表中,主键与Animal对应记录的主键各自对应. 配置 PO对象 跟上篇文章一样,实体类没有任何变化.

三种方法实现从“一个(组)查询过程中返回两个表的查询结果”

还记得開始做机房的时候,遇到了要从一个函数中返回两个表的查询结果.当时的解决方法非常"冲动"也非常"无拘无束",直接在实体类里边加入了其它表的实体,效果是达到了,但总认为不伦不类. 如今介绍三种解决上述问题的方法(代码为VB.net.系统使用三层架构). 题设要求:如果我如今要从卡表和学生表里返回查询信息(卡表的comment,money,status和学生表的所有信息),卡表和学生表例如以下: 图一  学生表 图二    卡表 方法一:视图. 比較简单,相信这样的

两张表A和B,各有一个字段,更新时间A.MODIFIED_TM和B.MODIFIED_TM,A表为主表,更新时间不为空,但是B表更新时间可能为空,现在要取A、B两表时间最新的那个,B.MODIFIED

问题描述: 两张表A和B,各有一个字段,更新时间A.MODIFIED_TM和B.MODIFIED_TM,A表为主表,更新时间不为空,但是B表更新时间可能为空,现在要取A.B两表时间最新的那个,B.MODIFIED_TM若为空就取A.MODIFIED_TM,例如: 表A ID    MODIFIED_TM 1     2013/3/10 18:07:12 2     2013/4/10 18:07:12 3     2013/5/10 18:07:12 表B ID    MODIFIED_TM 1

怎样将结构完全一样的两个表的内容合并到一个表中,SQL语句

标签: SQL合并数据 2013-08-21 10:41 489人阅读 评论(0) 收藏 举报  分类: Oracle数据库(14)  select * into 新表名 from (select * from T1 union all select * from T2) 这个语句可以实现将合并的数据追加到一个新表中. 不合并重复数据 select * from T1 union all select * from T2 合并重复数据 select * from T1 union select

MySQL实验1: 新建一个名为 library 的数据库,包含 book、reader 两张表,根据自己的理解安排表的内容并插入数据。

数据表(table)简称表,它是数据库最重要的组成部分之一.数据库只是一个框架,表才是实质内容. 实验: 新建一个名为 library的数据库,包含 book.reader两张表,根据自己的理解安排表的内容并插入数据. 参考答案: 总结:经过本次实验,我们已经有了一个名为 library的数据库,其中有 book和reader两张表,我们已经向其中插入了一些数据. 原文地址:https://www.cnblogs.com/HongjianChen/p/10692764.html

MySQL 两张表关联更新(用一个表的数据更新另一个表的数据)

有两张表,info1, info2 . info1: info2: 现在,要用info2中的数据更新info1中对应的学生信息,sql语句如下: UPDATE info1 t1 JOIN info2 t2 ON t1.name = t2.name SET t1.age = t2.age, t1.class = t2.class; 运行结果如下: 更新过的info1: 至于效率问题,之前我有三张表,都在40万左右.需要将 table2 中的两个字段(step1),table3 中的一个字段(ste

sql语句问题 通过联立两个表更新其中一个表的字段

============问题描述============ 有两个表a和b,a表中的字段有mobilehead(号码前7位),provincename,b表中有mobile(正常号码),provincename,需求是通过联立两个表,更新b表中provincename为空的数据. ============解决方案1============ 可以这样做 UPDATE    b SET            b.PN = a.PN FROM         a   WHERE     b.PN = '