// 1.创建一个SessionFactory对象
SessionFactory sessionFactory = null;
// 2.创建session对象
Session session = null;
@Before
public void init() {
// 3.把注册信息传入ServiceRegistry接口中 Hibernate5.X做法
StandardServiceRegistry registry = new StandardServiceRegistryBuilder()
.configure().build();
try {
// 4.获取sessionFactory
sessionFactory = new MetadataSources(registry).buildMetadata()
.buildSessionFactory();
} catch (Exception e) {
// 出现异常需要销毁StandardServiceRegistry注册表
StandardServiceRegistryBuilder.destroy(registry);
}
// 5.获取session对象
session = sessionFactory.openSession();
// 6.开启事务
session.beginTransaction();
}
@Test
public void testGet() {
// 加载 使用get
User u =session.get(User.class,1);
System.out.println(u.getClass());
}
@Test
public void testLoad() {
User u =session.load(User.class,2);
System.out.println(u.getClass());
}
@After
public void close() {
// 8.提交事务
session.getTransaction().commit();
// 9.释放所有资源
session.close();
sessionFactory.close();
}
控制台是: java.lang.ClassCastException: com.ltt.user.User_$$_javassist_0 cannot be cast to javassist.util.proxy.Proxy
2018-5-24 20:05:25 org.hibernate.event.internal.DefaultLoadEventListener doOnLoad
INFO: HHH000327: Error performing load command : org.hibernate.HibernateException: HHH000142: Javassist Enhancement failed: com.ltt.user.User 2018-5-24 20:05:25 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl stop INFO: HHH10001008: Cleaning up connection pool [jdbc:mysql:///test0221]
Junit界面是:org.hibernate.HibernateException: HHH000142: Javassist Enhancement failed: com.ltt.user.User
我就是想问如果不在映射文件中设置class标签中的lazy属性为false怎么才能消除异常
设置为lazy=false之后那load和get方法不是一样了吗?都变成了立即搜索