📄 many2onetest.java
字号:
package com.bjsxt.hibernate;
import org.hibernate.Session;
import junit.framework.TestCase;
public class Many2OneTest extends TestCase {
public void testSaveMany2one1() {
Session session = null;
try {
session = HibernateUtils.getSession();
session.beginTransaction();
Group group = new Group();
group.setName("java开发组");
for (int i = 0; i < 10 ; i++) {
User user = new User();
user.setName("User_" + i);
//建立对象之间的关系
user.setGroup(group);
//因为user引用了Transient对象(group),所以抛出了TransientObjectException
//持久对象不能直接引用瞬时对象
session.save(user);
}
session.getTransaction().commit();
}catch(Exception e) {
e.printStackTrace();
session.getTransaction().rollback();
}finally {
HibernateUtils.closeSession(session);
}
}
public void testSaveMany2one2() {
Session session = null;
try {
session = HibernateUtils.getSession();
session.beginTransaction();
Group group = new Group();
group.setName("java开发组");
//将group转换为持久对对象
session.save(group);
for (int i = 0; i < 10 ; i++) {
User user = new User();
user.setName("User_" + i);
//建立对象之间的关系
user.setGroup(group);
//因为group为持久对象,所以可以成功保存
session.save(user);
}
session.getTransaction().commit();
}catch(Exception e) {
e.printStackTrace();
session.getTransaction().rollback();
}finally {
HibernateUtils.closeSession(session);
}
}
public void testSaveMany2one3() {
Session session = null;
try {
session = HibernateUtils.getSession();
session.beginTransaction();
Group group = new Group();
group.setName("java开发组");
for (int i = 0; i < 10 ; i++) {
User user = new User();
user.setName("User_" + i);
//建立对象之间的关系
user.setGroup(group);
//通过级联,是解决TransientObjectException异常的一种手段
session.save(user);
}
session.getTransaction().commit();
}catch(Exception e) {
e.printStackTrace();
session.getTransaction().rollback();
}finally {
HibernateUtils.closeSession(session);
}
}
/**
* 转载User对象
*
*/
public void testLoadUser() {
Session session = null;
try {
session = HibernateUtils.getSession();
session.beginTransaction();
User user = (User)session.load(User.class, 20);
System.out.println("user name=" + user.getName());
System.out.println("related group=" + user.getGroup().getName());
}catch(Exception e) {
e.printStackTrace();
}finally {
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -