程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Spring-boot + JPA EntityManager注入失败大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Spring-boot + JPA Entitymanager注入失败?

开发过程中遇到Spring-boot + JPA Entitymanager注入失败的问题如何解决?下面主要结合日常开发的经验,给出你关于Spring-boot + JPA Entitymanager注入失败的解决方法建议,希望对你解决Spring-boot + JPA Entitymanager注入失败有所启发或帮助;

您应该将依赖项用于spring-boot-starter-data-jpa

<dependency>
    <groupID>org.springframework.boot</groupID>
    <artifactID>spring-boot-starter-data-jpa</artifactID>
</dependency>

要使用持久性xml,您应该按照文档中的定义定义一个bean。

http://docs.spring.io/spring-boot/docs/current/reference/html/howto-data- access.HTML#howto-use-Traditional-persistence- xml

或者,您可以完全跳过persistence.xml,并在application.propertIEs文件中定义连接属性。

引用文档

spring.datasource.url=jdbc:MysqL://localhost/test
spring.datasource.username=dbuser
spring.datasource.password=dbpass
spring.datasource.driver-class-name=com.Mysql.jdbc.Driver

http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features- sql.HTML#boot-features-connect-to-production- database

(更改驱动程序和其他数据以匹配您的环境)

祝好运!

解决方法

在我的J2EE应用程序中,我尝试使用spring-
boot和JPA技术,并将Entitymanager注入DAO层。但是,我遇到了一些问题&Hellip;用户CRUD的存储库:

@Repository
public class UserRepositoryImpl implements UserRepository {

@PersistenceContext(unitName = "data")
private Entitymanager entitymanager;
// and crud methods
}

我的spring-boot应用程序类:

@SpringBootApplication
public class App {
    public static void main(String [] args) {
        SpringApplication.run(App.class,args);
    }

}

最后是我的persistence.xml,位于src / main / resources / META-INF文件夹中:

<?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/XMLscheR_202_11845@a-instance"
xsi:scheR_202_11845@aLOCATIOn="http://java.sun.com/xml/ns/persistence          http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="data" transaction-type="resourcE_LOCAL">
    <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
    <class>com.example.domain.User</class>
    <exclude-unlisted-classes>true</exclude-unlisted-classes>
    <properties>
        <property name="hibernate.connection.autocommit" value="false" />
        <property name="hibernate.dialect" value="org.hibernate.dialect.SQLServerDialect" />
        <property name="hibernate.c3p0.min_size" value="4" />
        <property name="hibernate.c3p0.max_size" value="128" />
        <property name="javax.persistence.jdbc.url" value="jdbc:sqlserver://localhost:1433;databasename=qwerty;sendStringParametersAsUnicode=false" />
        <property name="javax.persistence.jdbc.user" value="sa" />
        <property name="javax.persistence.jdbc.driver" value="com.microsoft.sqlserver.jdbc.SQLServerDriver" />
        <property name="javax.persistence.jdbc.password" value="" />
        <property name="hibernate.hbm2ddl.auto" value="update" />
        <property name="hibernate.show_sql" value="false" />
    </properties>
</persistence-unit>

因此,当我尝试使用此注入的entitymanager时,会收到NullPointerException。注入其他@Autowired字段没有任何问题。此代码有什么问题?我需要一些额外的配置吗?我是一个初学者(甚至不是初级开发人员),而且对于Spring-
boot是什么以及如何配置它(例如xml文件中的Spring)确实有一些误解。如果由于注入EM而需要这种xml配置,请说明如何执行。

upd2。依存关系

<dependencies>
    <!-- logger -->
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
    </dependency>

    <!-- db -->
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-c3p0</artifactId>
    </dependency>
    <dependency>
        <groupId>org.javassist</groupId>
        <artifactId>javassist</artifactId>
    </dependency>
    <dependency>
        <groupId>com.microsoft</groupId>
        <artifactId>sqljdbc4</artifactId>
    </dependency>
    <dependency>
        <groupId>org.quartz-scheduler</groupId>
        <artifactId>quartz</artifactId>
        <version>2.2.1</version>
    </dependency>

    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-Annotations</artifactId>
        <version>2.5.3</version>
    </dependency>

    <!-- csv -->
    <dependency>
        <groupId>com.opencsv</groupId>
        <artifactId>opencsv</artifactId>
        <version>3.3</version>
    </dependency>

    <!-- spring-boot -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
        <version>1.2.4.RELEASE</version>

        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-logging</artifactId>
            </exclusion>
        </exclusions>

    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-log4j</artifactId>
        <version>1.2.4.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-tx</artifactId>
        <version>4.1.6.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <version>1.2.4.RELEASE</version>

        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-logging</artifactId>
            </exclusion>
        </exclusions>

    </dependency>

大佬总结

以上是大佬教程为你收集整理的Spring-boot + JPA EntityManager注入失败全部内容,希望文章能够帮你解决Spring-boot + JPA EntityManager注入失败所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。