我是JPA 2.0的新手。 有人可以告诉我如何创建新会话然后在JPA中执行查询的步骤吗?
请做好。
答案 0 :(得分:0)
我希望您创建了一个带持久性单元标记的persistence.xml。如果你还没有,那么你需要一个例子
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0"
xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="JPASamplePU" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>org.cksoft.jpasample.entity.Person</class>
<class>org.cksoft.jpasample.entity.Profile</class>
<class>org.cksoft.jpasample.entity.Department</class>
<class>org.cksoft.jpasample.entity.Skills</class>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
<property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/MyApp_DB" />
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" />
<property name="hibernate.connection.username" value="root" />
<property name="hibernate.connection.password" value="" />
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.format_sql" value="true" />
<property name="hibernate.hbm2ddl.auto" value="update" />
<!-- <property name="hibernate.cache.use_second_level_cache" value="true"
/> -->
<!-- <property name="hibernate.cache.use_query_cache" value="true" /> -->
</properties>
</persistence-unit>
</persistence>
之后,您需要创建EntityManagerFactory(如果您从main方法访问它)
EntityManagerFactory emf = Persistence.createEntityManagerFactory("PERSISTENCE_UNIT_NAME");
EntityManager em = emf.createEntityManager();
以下是我们如何获取交易并开始并提交它。
em.getTransaction().begin();
em.getTransaction().commit();
在此之后,您可以继续使用EntityManager或关闭它
em.close();
Session是hibernate特定的类,几乎和EntityManager一样。 如果我错了或者缺少某些东西,请纠正我们。谢谢。