Hibernate的关系映射中遇到那些坑
1、介绍
hibernate确实好,不用我们直接去操作数据库属性,而是与java面向对象的思想契合,让我们直接对对象实体类去操作,工厂实例化后,使用封装好的session,符合实际问题的解决思路,而且全自动,我只想说奥利给。
但是里面对于java实体类的映射,xml的编写,主hibernate.cfg.xml的坑一不注意就掉下去,关键是报错还不准确,让你改bug改的牙痒痒。
这一篇博文就是解决这问题的。
2、替换原有的HibernateUtils
package com.snack.dao;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
/**
* Hibernate工具类,用于获取SessionFactory和Session
*/
public class HibernateUtils {
static SessionFactory sessionFactory;
private Session session=null;
private Transaction tx =null;
//静态块用于实例化Session工厂
static{
try{
Configuration config = new Configuration().configure();
//config.addClass(TbMessage.class);
sessionFactory = config.buildSessionFactory();
} catch (Exception e) {
System.out.println("static块中:"+e.getMessage());
}
}
/**
* 获取Session工厂
* @return SessionFactory
*/
public static SessionFactory getSessionFactory(){
System.out.println("返回工厂");
return sessionFactory;
}
/**
* 获取Session
* @return Session
*/
public static Session getSession(){
System.out.println("打开session"