package cn.jbit.ejbjpa.test;
import java.sql.Connection;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.ejb.Ejb3Configuration;
import org.hibernate.ejb.HibernateEntityManager;
import org.hibernate.ejb.HibernateEntityManagerFactory;
public class Test2 {
public static void main(String[] args) {
Ejb3Configuration cfg = new Ejb3Configuration();
EntityManagerFactory emf = cfg.buildEntityManagerFactory();
// 使用Hibernate原生Configuration
Configuration hcfg = cfg.getHibernateConfiguration();
HibernateEntityManagerFactory hibemf = (HibernateEntityManagerFactory) emf;
// 使用Hibernate原生SessionFactory
SessionFactory sessionFactory = hibemf.getSessionFactory();
EntityManager em = emf.createEntityManager();
// 使用Hibernate原生Session
HibernateEntityManager hibem = (HibernateEntityManager) em;
Session session = hibem.getSession();
// 方法2
// Session session2 = (Session) hibem.getDelegate();
// 极少情况下,能够从Hibernate Session退出到简单的JDBC接口
// Connection jdbcConnection = session.connection();
}
}这最后一个选项有一些警告:不允许你关闭从Hibernate中获得的JDBC Connection——它会自动进行。@Resource(mappedName="java:/BdqnDS") DataSource ds;目前为止,假设你是在一个没有涉及遗留应用程序代码(或者现有的数据库Schema)的新Hibernate或者新JPA项目上进行。现在转换一下视角,考虑一个自底而上的开发过程。在这样一个场景中,你或许想要自动地从现有的数据库Schema中反射工程所需要创建的东西。
Hibernate实战_笔记13(切换回Hibernate接口),布布扣,bubuko.com
Hibernate实战_笔记13(切换回Hibernate接口)
原文:http://blog.csdn.net/com185272358/article/details/20923059