创建entityManager

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");

    }

}
扫描二维码关注公众号,回复: 7584589 查看本文章

猜你喜欢

转载自www.cnblogs.com/wolbo/p/11735040.html
今日推荐