1 需要persistence.xml 完全通过属性配置没成功
<persistence 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" version="2.0"> <persistence-unit name="aa" transaction-type="RESOURCE_LOCAL"> <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider> <properties> <property name="javax.persistence.jdbc.driver" value="org.postgresql.Driver"/> <property name="javax.persistence.jdbc.url" value="jdbc:postgresql://127.0.0.1:5432/testaa"/> <property name="javax.persistence.jdbc.user" value="testaa"/> <property name="javax.persistence.jdbc.password" value="Test6530"/> <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQL95Dialect"/> <property name="hibernate.hbm2ddl.auto" value="create"/> <property name="hibernate.show_sql" value="true"/> <property name="hibernate.format_sql" value="true"/> </properties> </persistence-unit> </persistence>
2 引包 hibernate-core
groupid 为hibernate的包已经过时了 要引org.hibernate
hibernate-entitymanager也过时了 用hibernate-core就够了
<dependencies> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>RELEASE</version> </dependency> <dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> <version>42.2.5</version> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>5.4.7.Final</version> </dependency>
3 检查lib中是否有jpa1.x 需要移除掉 不然会报
Exception in thread "main" java.lang.NoSuchMethodError: org.hibernate.engine.spi.SessionFactoryImplementor.getProperties()Ljava/util/Map;
缺少jta(最后一个) 会报 java.lang.NoClassDefFoundError: javax/transaction/SystemException
4 测试代码
import lombok.var; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; public class test { public static void main(String [] args){ // Map<String, Object> properties = new HashMap<String, Object>(); // properties.put(AvailableSettings.DRIVER, org.postgresql.Driver.class); // properties.put(AvailableSettings.URL, "jdbc:postgresql://127.0.0.1:5432/testaa"); // properties.put(AvailableSettings.USER, "testaa"); // properties.put(AvailableSettings.PASS, "password"); // properties.put(AvailableSettings.DEFAULT_CATALOG, "testaa"); // properties.put(AvailableSettings.DIALECT, org.hibernate.dialect.PostgreSQL95Dialect.class); // EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("aa"); EntityManager em = entityManagerFactory.createEntityManager(); var query =em.createNativeQuery("select * from figdxmzd2019 "); var result = query.getResultList(); System.out.println("hehe"); } }