hibernate4.3.8的dialect和创建SessionFactory遇到的一些问题
好久不用hibernat,心里记着的还是hibernate3的标准,今天换成hibernate4.3.8后问题层出不穷啊。。。
首先是hibernate4.3.8中使用mysql方言时,hibernate.cfg.xml中配置的是
<property name="dialect">org.hibernate.dialect.MySQL57InnoDBDialect</property>
其次,在创建SessionFactory时废了不少的功夫,以前的buildSessionFactory()方法过时了,
同时在使用注解时也不能再new AnnotationConfiguration()
查了一番文档后发现建立SessionFactory改用以下代码
1 Configuration cfg = new Configuration(); 2 cfg.configure(); 3 ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySettings(cfg.getProperties()).build();//这里改为build()方法 4 SessionFactory sf = cfg.buildSessionFactory(serviceRegistry); 5 Session session = sf.openSession(); 6 session.beginTransaction(); 7 session.save(student); 8 session.getTransaction().commit(); 9 session.close(); 10 sf.close();
同时,无论是使用xml文件还是注释,现在直接用这套代码都可以创建SessionFactory了,以前的AnnotationConfiguration类
被包含进了Configuration类中!