解决方案:Spring Data JPA @Entity 找不到

最近写一个web项目,Spring Boot 使用的最新稳定版本2.0.4,


		org.springframework.boot
		spring-boot-starter-parent
		2.0.4.RELEASE
		 
	

但是当尝试集成Spring Data JPA 的时候发现一个很奇怪的现象,在之前2.0.0 版本时引入下面这个依赖


			org.springframework.data
			spring-data-jpa

在实体类中就可以直接使用@Entity 注解的,但是现在却怎么样也提示 不出来。

故障分析:

经过思考,注解引入的是这三个包,但是现在提示不出来 应该是缺少这个包

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

那么这个包来源于哪里呢?

查资料可知,这个包是hibernate-jpa-2.1-api.jar里面的

解决方案

最优解决方案:

如果是Spring Boot 项目直接使用JPA starters 就好了

     
            org.springframework.boot
            spring-boot-starter-data-jpa
        

因为这个依赖中spring-boot-starter-data-jpa 添加了Hibernate 相关的依赖.

在这里由衷感谢@weixin_44545768的指正.


spring-boot-starter-data-jpa-2.1.4.RELEASE.pom 中依赖如下:


    
      org.springframework.boot
      spring-boot-starter-aop
      2.1.4.RELEASE
      compile
    
    
      org.springframework.boot
      spring-boot-starter-jdbc
      2.1.4.RELEASE
      compile
    
    
      javax.transaction
      javax.transaction-api
      1.3
      compile
    
    
      javax.xml.bind
      jaxb-api
      2.3.1
      compile
    
    
      org.hibernate
      hibernate-core
      5.3.9.Final
      compile
      
        
          jboss-transaction-api_1.2_spec
          org.jboss.spec.javax.transaction
        
      
    
    
      org.springframework.data
      spring-data-jpa
      2.1.6.RELEASE
      compile
      
        
          aspectjrt
          org.aspectj
        
        
          jcl-over-slf4j
          org.slf4j
        
      
    
    
      org.springframework
      spring-aspects
      5.1.6.RELEASE
      compile
       
 

解决方案二:

如果不是Spring Boot 项目,那么添加这个依赖即可:
http://mvnrepository.com/artifact/org.hibernate.javax.persistence/hibernate-jpa-2.1-api/1.0.2.Final



    org.hibernate.javax.persistence
    hibernate-jpa-2.1-api
    1.0.2.Final

你可能感兴趣的:(StackOverflow,Spring,Data,JPA)