社区
Java EE
帖子详情
hibernate中的one to one
eastcfd
2009-04-24 10:03:56
请问如何在myeclipse中进行one to one的配置 我建了半天不是关联不起来,就是one to many的,请问有选择配成one to one的吗?向大家请教。
...全文
456
7
打赏
收藏
hibernate中的one to one
请问如何在myeclipse中进行one to one的配置 我建了半天不是关联不起来,就是one to many的,请问有选择配成one to one的吗?向大家请教。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
happy8211
2009-06-01
打赏
举报
回复
通过Hibernate Reverse Engineering生成po,怎么能自动设置one-to-one的关系的,有没有其他工具能生成hibernate3的pojo的
HSSASJ
2009-04-27
打赏
举报
回复
一對多:
部門(Department)和員工(Employee)的關系。
1)Department的映射文件配置:
<class name="Department" table="t_department">
<id name="id" column="d_id">
<generator class="increment"></generator>
</id>
................
<set name="employees" inverse="true" cascade="save-update"> //employees是Department中的关系属性。
<key column="dept_id"></key> //外键列
<one-to-many class="Employee"/> //关联实体
</set>
</class>
2)Employee的映射文件配置:
<class name="Employee" table="t_employee">
<id name="id" column="e_id">
<generator class="increment"></generator>
..................
<many-to-one class="department" column="dept_id"></many-to-one> //department为Employee实体中的关系属性。
HSSASJ
2009-04-27
打赏
举报
回复
改一 改:
2)独立外键的关联方式:
1)主表映射文件的写法:
<class name="Person" table="t_person">
<id name="id" column="p_id">
<generator class="increment"> </generator>
</id>
<property name="name" column="p_name" type="string"> </property>
<property name="birthday" column="p_birthday" type="date"> </property>
<property name="email" column="email" type="string"> </property>
<property name="phone" column="phone" type="string"> </property>
<one-to-one name="passport" property-ref="person" cascade="all"> </one-to-one> //person为
实体类Passwort中的关系属性。
</class>
2)辅表映射文件的写法:
<class name="Passport" table="t_passport">
<id name="id" column="p_id">
<generator class="increment">
</generator>
</id>
<property name="serial" column="p_serial" type="string"> </property>
<property name="expiry" column="p_expiry" type="integer"> </property>
<property name="date" column="p_date" type="date"> </property>
<many-to-one unique="true" name="person" column="pss_id">//pss_id为外键列
</one-to-one>
</class>
HSSASJ
2009-04-25
打赏
举报
回复
如樓上所說有兩種形式:一是共享主键的形式进行关联,二就是独立外键的形式进行关联:
例如:人(Person)和护照(Passwort)的关系是一对一的的关系:
1)共享主键的形式:
1)主表映射文件的写法:
<class name="Person" table="t_person">
<id name="id" column="p_id">
<generator class="increment"></generator>
</id>
<property name="name" column="p_name" type="string"></property>
<property name="birthday" column="p_birthday" type="date"></property>
<property name="email" column="email" type="string"></property>
<property name="phone" column="phone" type="string"></property>
<one-to-one name="passport" cascade="all"></one-to-one>
</class>
2)辅表映射文件的写法:
<class name="Passport" table="t_passport">
<id name="id" column="p_id">
<generator class="foreign">
<param name="property">person</param> //person为Passport中的关系属性
</generator>
</id>
<property name="serial" column="p_serial" type="string"></property>
<property name="expiry" column="p_expiry" type="integer"></property>
<property name="date" column="p_date" type="date"></property>
<one-to-one name="person" constrained="true" cascade="all">
</one-to-one>
</class>
2)独立外键的关联方式:
1)主表映射文件的写法:
<class name="Person" table="t_person">
<id name="id" column="p_id">
<generator class="increment"></generator>
</id>
<property name="name" column="p_name" type="string"></property>
<property name="birthday" column="p_birthday" type="date"></property>
<property name="email" column="email" type="string"></property>
<property name="phone" column="phone" type="string"></property>
<one-to-one name="passport" property-ref="person" cascade="all"></one-to-one> //person为
实体类Passwort中的关系属性。
</class>
2)辅表映射文件的写法:
<class name="Passport" table="t_passport">
<id name="id" column="p_id">
<generator class="increment">
</generator>
</id>
<property name="serial" column="p_serial" type="string"></property>
<property name="expiry" column="p_expiry" type="integer"></property>
<property name="date" column="p_date" type="date"></property>
<one-to-one name="person" column="pss_id" cascade="all">//pss_id为外键列
</one-to-one>
</class>
如有错请指正!谢谢!!!
wuqianyu1
2009-04-25
打赏
举报
回复
one to one 的有两种形式的,一种是共享主键,一种是独立外键.
比如User和Account是一对一的关系,若将外键加到User表,Account表为主表,User表为辅表
1).共享主键方法名方式:主外键是一样的,在主表方写<one-to-one name="关联属性"/>
辅表方写:<one-to-one name="关联属性",constrained="false">,还要注意辅表的主健生成方式必需该为foreign
即: <id name="oid" column="OID" >
<generator class="foreign">
<param name="property">addr</param>
</generator>
</id>
2).独立外键:主外键不一样,
在主表方写
<one-to-one name="owner"
property-ref="acct" />
在辅表方写 <many-to-one name="关联属性" column="字段名" unique="true"/>
eastcfd
2009-04-25
打赏
举报
回复
我改了配置文件还是不知道怎么把myeclipse中的一对多改成单对单的,有没视频给个能教我怎么建单对单的,请大家帮忙
eastcfd
2009-04-25
打赏
举报
回复
非常感谢两位的解答!
Hibernate
_3.2.0_符合Java习惯的关系数据库持久化
HIBERNATE
- 符合Java习惯的关系数据库持久化
Hibernate
参考文档 3.2 -------------------------------------------------------------------------------- 目录 前言 1. 翻译说明 2. 版权声明 1.
Hibernate
入门 1.1. 前言 1.2. 第一部分 - 第一个
Hibernate
应用程序 1.2.1. 第一个class 1.2.2. 映射文件 1.2.3.
Hibernate
配置 1.2.4. 用Ant构建 1.2.5. 启动和辅助类 1.2.6. 加载并存储对象 1.3. 第二部分 - 关联映射 1.3.1. 映射Person类 1.3.2. 单向Set-based的关联 1.3.3. 使关联工作 1.3.4. 值类型的集合 1.3.5. 双向关联 1.3.6. 使双向连起来 1.4. 第三部分 - EventManager web应用程序 1.4.1. 编写基本的servlet 1.4.2. 处理与渲染 1.4.3. 部署与测试 1.5. 总结 2. 体系结构(Architecture) 2.1. 概况(Overview) 2.2. 实例状态 2.3. JMX整合 2.4. 对JCA的支持 2.5. 上下文相关的(Contextual)Session 3. 配置 3.1. 可编程的配置方式 3.2. 获得SessionFactory 3.3. JDBC连接 3.4. 可选的配置属性 3.4.1. SQL方言 3.4.2. 外连接抓取(Outer Join Fetching) 3.4.3. 二进制流 (Binary Streams) 3.4.4. 二级缓存与查询缓存 3.4.5. 查询语言
中
的替换 3.4.6.
Hibernate
的统计(statistics)机制 3.5. 日志 3.6. 实现NamingStrategy 3.7. XML配置文件 3.8. J2EE应用程序服务器的集成 3.8.1. 事务策略配置 3.8.2. JNDI绑定的SessionFactory 3.8.3. 在JTA环境下使用Current Session context (当前session上下文)管理 3.8.4. JMX部署 4. 持久化类(Persistent Classes) 4.1. 一个简单的POJO例子 4.1.1. 实现一个默认的(即无参数的)构造方法(constructor) 4.1.2. 提供一个标识属性(identifier property)(可选) 4.1.3. 使用非final的类 (可选) 4.1.4. 为持久化字段声明访问器(accessors)和是否可变的标志(mutators)(可选) 4.2. 实现继承(Inheritance) 4.3. 实现equals()和hashCode() 4.4. 动态模型(Dynamic models) 4.5. 元组片断映射(Tuplizers) 5. 对象/关系数据库映射基础(Basic O/R Mapping) 5.1. 映射定义(Mapping declaration) 5.1.1. Doctype 5.1.2.
hibernate
-mapping 5.1.3. class 5.1.4. id 5.1.5. composite-id 5.1.6. 鉴别器(discriminator) 5.1.7. 版本(version)(可选) 5.1.8. timestamp (可选) 5.1.9. property 5.1.10. 多对一(many-to-one) 5.1.11. 一对一 5.1.12. 自然ID(natural-id) 5.1.13. 组件(component), 动态组件(dynamic-component) 5.1.14. properties 5.1.15. 子类(subclass) 5.1.16. 连接的子类(joined-subclass) 5.1.17. 联合子类(union-subclass) 5.1.18. 连接(join) 5.1.19. 键(key) 5.1.20. 字段和规则元素(column and formula elements) 5.1.21. 引用(import) 5.1.22. any 5.2.
Hibernate
的类型 5.2.1. 实体(Entities)和值(values) 5.2.2. 基本值类型 5.2.3. 自定义值类型 5
hibernate
中
one-to-one两种配置方式
public class Person { private int id; private String name; private IdCard idCard; public Person() { } public Person(int id, String name, IdCard idCard) {
全面掌握
Hibernate
框架技术
全面包含
Hibernate
相关技术,老司机手把手带你一起飞,让你少走弯路。包含
Hibernate
相关技术:
Hibernate
简介、Session API、对象的状态查询操作(主键查询、HQL查询、Criteria查询、SQL查询、命名查询、doWork)关联关系:多对一、一对多、多对多、一对一组件映射、继承映射、缓存、JPA反向工程、封装GenericDao教学全程采用笔记+代码案例的形式讲解,通俗易懂!!!
Hibernate
实体级联配置(one-to-one,many-to-one,many-to-many)
Hibernate
实体级联配置(one-to-one,many-to-one,many-to-many)
Hibernate
one-to-one映射的三种方式
几种支持的技术 在
Hibernate
中
,在两个实体间有三种方式创建one-to-one的关系,其
中
一种方式是使用@OneToOne注解。第一种技术广泛的被使用,在表
中
使用外键列;第二种技术使用众所周知的第三个表,来存储两个表间的映射关系;第三种技术是在两个表
中
使用普通的主键。 我们一个一个来看看 使用主键的关系 在这种关系
中
,外键列在自己的实体
中
创建,例如我们让 Employee实体作为拥...
Java EE
67,513
社区成员
225,879
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章