Hibernate 双向 1 对 1 对象关系映射 —外键关联 下 ,测试 crud
来源:互联网 发布:windows下svn钩子 编辑:程序博客网 时间:2024/05/22 12:25
package com.baidu.one2one.foreign;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;import org.hibernate.service.ServiceRegistry;import org.hibernate.service.ServiceRegistryBuilder;import org.junit.After;import org.junit.Before;import org.junit.Test;public class TestPC {private SessionFactory sessionFactory;private Session session;private Transaction transaction;@Beforepublic void init(){Configuration configuration = new Configuration().configure();ServiceRegistry serviceRegistry = new ServiceRegistryBuilder() .applySettings(configuration.getProperties()) .buildServiceRegistry();sessionFactory = configuration.buildSessionFactory(serviceRegistry);session = sessionFactory.openSession();transaction = session.beginTransaction();System.out.println("init....");}@Afterpublic void destroy(){transaction.commit();session.close();sessionFactory.close();System.out.println("destory....");}@Testpublic void testGet2() {//在查询 没有外键 的实体对象时,使用左外连接查询,一并查询出其关联的对象//并已经进行初始化Person person = (Person) session.get(Person.class, 1);System.out.println(person.getPersonName());System.out.println(person.getCard().getCardName());}@Testpublic void testGet() {//1.默认情况下对关联属性使用懒加载Card card = (Card) session.get(Card.class, 1);System.out.println(card.getCardName());//2. 所以会出现懒加载异常的问题//session.close();//Person person = card.getPerson();//System.out.println(person.getClass());//System.out.println(person.getPersonName());/** * 3. 查询Person 对象的连接条件应该是person0_.PERSON_ID=card1_.PERS_ID * 而不应该是 person0_.PERSON_ID=card1_.CARD_ID * * 如何解决: * 在Person 即配置one-to-one 的一端添加属性:property-ref="person" * <one-to-one name="card" class="Card" property-ref="person" ></one-to-one> */Person person = card.getPerson();System.out.println(person.getPersonName());}@Testpublic void testSave() {Person person = new Person();person.setPersonName("Person-3");person.setAge(25);Card card = new Card();card.setCardName("Operat Card");//设定关联关系card.setPerson(person);person.setCard(card);//save 操作//建议先保存没有外键列的那个对象,这样会减少UPDATE语句session.save(card);session.save(person);}}
0 0
- Hibernate 双向 1 对 1 对象关系映射 —外键关联 下 ,测试 crud
- Hibernate 双向 1 对 1 对象关系映射 —— 主键关联 下 ,测试 crud
- Hibernate 双向 多 对 1 对象关系映射 下 ,测试 crud
- Hibernate 双向 多 对 多 对象关系映射 ,测试 crud
- Hibernate 单向 多 对 1 对象关系映射 下 ,测试 crud
- Hibernate 单向 1 对 多 对象关系映射 下 ,测试 crud
- Hibernate 单向 多 对 多 对象关系映射 ,测试 crud
- 【HIbernate框架学习】:Hibernate对象关系映射之双向多对多关联映射
- Hibernate关联关系映射---1对1
- Hibernate关联关系映射---1对多
- Hibernate关系映射级别注解(多对多单向外键关联、多对多双向外键关联)
- Hibernate 继承关系 对象关系映射--subclass ,测试 crud
- Hibernate 继承关系 对象关系映射--joined-subclass ,测试 crud
- Hibernate 继承关系 对象关系映射--union-subclass ,测试 crud
- Hibernate关系映射2:双向1-N关联
- Hibernate对象关系映射-- 多对多关联关系映射
- Hibernate关系映射(11)_多对多双向关联
- Hibernate -- 映射多对多双向关联关系
- OpenCV 读取 Cifar 数据集
- 三、C++ 复制构造函数
- 使用Colseable接口封装流关闭工具类IOClose
- HDU2068
- C++实验7-最大公约和和最小公倍数
- Hibernate 双向 1 对 1 对象关系映射 —外键关联 下 ,测试 crud
- 视频加载
- laravel5.1框架下的权限控制
- 进程与线程的一个简单解释
- CC2540和CC2541区别在哪里?
- 完美解码为什么播放电影时是半透明的
- Android JavascriptBridge 详解(二)
- linux clocksource
- Error creating bean with name 'sessionFactory' defined in class path resource [applicationContext.xm