0

In an eclipse project that uses maven, jpa, and hibernate, I am getting the following two compilation errors:

NamedEntityGraph cannot be resolved to a type  
and  
NamedAttributeNode cannot be resolved to a type  

How can I resolve these compilation errors?

Here is the line of code that is showing the compilation errors:

@Entity(name="someclass")  
@NamedEntityGraph(name="includeOther", attributeNodes={@NamedAttributeNode("other")})
@Table(name="sometable")
public class SomeClass {
    //lots of stuff
}

I think the problem is that eclipse is not seeing that I have JPA 2.1 configured. But I have tried to install and configure JPA 2.1. You can read the entire code of my pom.xml at a file sharing site by clicking on this link. I set up JPA 2.1 in the eclipse project facets, which you can see by clicking on this link. Also, I ran mvn dependency:tree on the root folder of the eclipse project from the windows command line, and I got the following output:

[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building MyApp 1.0.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[WARNING] The artifact org.apache.commons:commons-io:jar:1.3.2 has been relocated to commons-io:commons-io:jar:1.3.2
[INFO]
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ MyApp ---
[WARNING] The artifact org.apache.commons:commons-io:jar:1.3.2 has been relocated to commons-io:commons-io:jar:1.3.2
[INFO] org.springframework.samples:MyApp:war:1.0.0-SNAPSHOT
[INFO] +- org.jvnet.hyperjaxb3:hyperjaxb3-ejb-runtime:jar:0.6.0:compile
[INFO] |  +- org.apache.commons:commons-lang3:jar:3.2.1:compile
[INFO] |  \- org.jvnet.jaxb2_commons:jaxb2-basics-runtime:jar:0.8.2:compile
[INFO] +- org.jvnet.hyperjaxb3:hyperjaxb3-ejb-roundtrip:jar:0.6.0:compile
[INFO] |  +- org.hibernate.javax.persistence:hibernate-jpa-2.0-api:jar:1.0.0.Final:compile
[INFO] |  +- org.jvnet.jaxb2_commons:jaxb2-basics-testing:jar:0.8.2:compile
[INFO] |  |  +- xmlunit:xmlunit:jar:1.0:compile
[INFO] |  |  \- org.jvnet.jaxb2_commons:jaxb2-basics-tools:jar:0.8.2:compile
[INFO] |  |     \- commons-logging:commons-logging:jar:1.1.1:compile
[INFO] |  \- org.slf4j:slf4j-log4j12:jar:1.6.1:compile
[INFO] |     \- log4j:log4j:jar:1.2.16:compile
[INFO] +- org.jadira.usertype:usertype.core:jar:3.1.0.CR8:compile
[INFO] |  \- org.jadira.usertype:usertype.spi:jar:3.1.0.CR8:compile
[INFO] +- javax.servlet:jstl:jar:1.2:compile
[INFO] +- javax.servlet:servlet-api:jar:2.5:provided
[INFO] +- javax.servlet.jsp:jsp-api:jar:2.2:provided
[INFO] +- org.springframework.data:spring-data-jpa:jar:1.6.4.RELEASE:compile
[INFO] |  +- org.springframework.data:spring-data-commons:jar:1.8.4.RELEASE:compile
[INFO] |  +- org.springframework:spring-context:jar:4.0.6.RELEASE:compile
[INFO] |  +- org.springframework:spring-beans:jar:4.0.6.RELEASE:compile
[INFO] |  +- org.springframework:spring-core:jar:4.0.6.RELEASE:compile
[INFO] |  \- org.slf4j:jcl-over-slf4j:jar:1.7.7:runtime
[INFO] +- org.springframework:spring-jdbc:jar:4.0.6.RELEASE:compile
[INFO] +- org.springframework:spring-aop:jar:4.0.6.RELEASE:compile
[INFO] |  \- aopalliance:aopalliance:jar:1.0:compile
[INFO] +- org.springframework:spring-webmvc:jar:4.0.6.RELEASE:compile
[INFO] |  +- org.springframework:spring-expression:jar:4.0.6.RELEASE:compile
[INFO] |  \- org.springframework:spring-web:jar:4.0.6.RELEASE:compile
[INFO] +- org.springframework:spring-tx:jar:4.0.6.RELEASE:compile
[INFO] +- org.springframework:spring-context-support:jar:4.0.6.RELEASE:compile
[INFO] +- org.springframework:spring-orm:jar:4.0.6.RELEASE:compile
[INFO] +- org.springframework:spring-oxm:jar:4.0.6.RELEASE:compile
[INFO] +- org.springframework:spring-jms:jar:4.0.6.RELEASE:compile
[INFO] +- org.apache.tomcat:tomcat-jdbc:jar:7.0.42:runtime
[INFO] |  \- org.apache.tomcat:tomcat-juli:jar:7.0.42:runtime
[INFO] +- org.slf4j:slf4j-api:jar:1.7.5:compile
[INFO] +- ch.qos.logback:logback-classic:jar:1.0.13:runtime
[INFO] |  \- ch.qos.logback:logback-core:jar:1.0.13:runtime
[INFO] +- joda-time:joda-time:jar:2.3:compile
[INFO] +- joda-time:joda-time-hibernate:jar:1.3:compile
[INFO] +- joda-time:joda-time-jsptags:jar:1.1.1:compile
[INFO] +- org.jadira.usertype:usertype.jodatime:jar:2.0.1:compile
[INFO] +- mysql:mysql-connector-java:jar:5.1.27:compile
[INFO] +- org.hibernate:hibernate-entitymanager:jar:4.2.1.Final:compile
[INFO] |  +- org.jboss.logging:jboss-logging:jar:3.1.0.GA:compile
[INFO] |  +- org.hibernate:hibernate-core:jar:4.2.1.Final:compile
[INFO] |  |  \- antlr:antlr:jar:2.7.7:compile
[INFO] |  +- dom4j:dom4j:jar:1.6.1:compile
[INFO] |  +- org.jboss.spec.javax.transaction:jboss-transaction api_1.1_spec:jar:1.0.1.Final:compile
[INFO] |  +- org.javassist:javassist:jar:3.15.0-GA:compile
[INFO] |  \- org.hibernate.common:hibernate-commons-annotations:jar:4.0.1.Final:compile
[INFO] +- org.hibernate:hibernate-validator:jar:5.1.1.Final:compile
[INFO] |  +- javax.validation:validation-api:jar:1.1.0.Final:compile
[INFO] |  \- com.fasterxml:classmate:jar:1.0.0:compile
[INFO] +- org.hibernate:hibernate-ehcache:jar:4.2.1.Final:compile
[INFO] +- net.sf.ehcache:ehcache-core:jar:2.6.6:compile
[INFO] +- org.webjars:bootstrap:jar:2.3.0:compile
[INFO] +- org.webjars:jquery-ui:jar:1.10.3:compile
[INFO] +- org.webjars:jquery:jar:2.0.3-1:compile
[INFO] +- org.springframework:spring-test:jar:4.0.6.RELEASE:test
[INFO] +- junit:junit:jar:4.11:test
[INFO] |  \- org.hamcrest:hamcrest-core:jar:1.3:test
[INFO] +- org.hamcrest:hamcrest-library:jar:1.3:test
[INFO] +- org.aspectj:aspectjrt:jar:1.7.4:compile
[INFO] +- org.aspectj:aspectjweaver:jar:1.7.4:runtime
[INFO] +- com.github.dandelion:datatables-jsp:jar:0.9.2:compile
[INFO] |  \- com.github.dandelion:datatables-core:jar:0.9.2:compile
[INFO] |     +- com.googlecode.json-simple:json-simple:jar:1.1.1:compile
[INFO] |     \- commons-beanutils:commons-beanutils:jar:1.8.3:compile
[INFO] +- com.github.dandelion:datatables-export-itext:jar:0.9.2:compile
[INFO] |  \- com.itextpdf:itextpdf:jar:5.3.4:compile
[INFO] +- com.github.dandelion:datatables-servlet2:jar:0.9.2:compile
[INFO] +- commons-fileupload:commons-fileupload:jar:1.2:compile
[INFO] +- commons-io:commons-io:jar:1.3.2:compile
[INFO] +- commons-lang:commons-lang:jar:2.6:compile
[INFO] +- org.apache.tiles:tiles-jsp:jar:2.1.3:compile
[INFO] |  \- org.apache.tiles:tiles-servlet:jar:2.1.3:compile
[INFO] |     \- org.apache.tiles:tiles-core:jar:2.1.3:compile
[INFO] |        +- org.apache.tiles:tiles-api:jar:2.1.3:compile
[INFO] |        \- commons-digester:commons-digester:jar:1.8.1:compile
[INFO] +- org.springframework.security:spring-security-core:jar:3.2.2.RELEASE:compile
[INFO] +- org.springframework.security:spring-security-web:jar:3.2.2.RELEASE:compile
[INFO] +- org.springframework.security:spring-security-config:jar:3.2.2.RELEASE:compile
[INFO] +- org.springframework.security:spring-security-taglibs:jar:3.2.2.RELEASE:compile
[INFO] |  \- org.springframework.security:spring-security-acl:jar:3.2.2.RELEASE:compile
[INFO] +- org.eclipse.emf:ecore:jar:2.2.3:compile
[INFO] \- org.eclipse.emf:common:jar:2.2.3:compile
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 9.805s
[INFO] Finished at: Thu Nov 06 12:32:32 PST 2014
[INFO] Final Memory: 14M/124M
[INFO] ------------------------------------------------------------------------
CodeMed
  • 9,527
  • 70
  • 212
  • 364

1 Answers1

1

From your dependency tree:

org.hibernate:hibernate-entitymanager:jar:4.2.1.Final:compile

I don't think Hibernate 4.2.1 supports JPA 2.1. You may need to upgrade to Hibernate 4.3.

You may also want to add this dependency if your application container doesn't provide it:

<dependency>
    <groupId>org.hibernate.javax.persistence</groupId>
    <artifactId>hibernate-jpa-2.1-api</artifactId>
    <version>1.0.0.Final</version>
</dependency>
jocki
  • 1,728
  • 16
  • 26
  • +1 and thank you for taking the time to eliminate this error message. However, now my app will not compile because there apparently is a redundant jar related to jpa. The exact compile error message is in a different posting. Are you willing to look at the new error message compared with the dependency tree above and help me answer both questions? Here is the link: http://stackoverflow.com/questions/26616723/java-lang-nosuchmethoderror-javax-persistence-table-indexesljavax-persistenc – CodeMed Nov 07 '14 at 17:45
  • Looks like `org.jvnet.hyperjaxb3:hyperjaxb3-ejb-roundtrip:jar:0.6.0:compile` is referencing `org.hibernate.javax.persistence:hibernate-jpa-2.0-api:jar:1.0.0.Final:compile`. This will conflict with the newer JPA 2.1 API. – jocki Nov 07 '14 at 17:58
  • Are you saying the only way to upgrade to jpa 2.1 is to disable hyperjaxb? – CodeMed Nov 07 '14 at 18:02
  • AFAIK, yes, because `hyperjaxb3-ejb-roundtrip` has _compile_ scope dependency with `hibernate-jpa-2.0-api`. You won't have this problem if `hibernate-jpa-2.0-api` is declared as _provided_ dependency for `hyperjaxb3-ejb-roundtrip`. – jocki Nov 07 '14 at 18:32
  • Thank you. Does this mean I can change the syntax of the hyperjaxb3 portion of the pom.xml so that it removes any conflict with JPA 2.1, and then still be able to use both JPA 2.1 and hyperjaxb3? If so, what would the syntax look like? I posted a hyperjaxb3 version of this question also: http://stackoverflow.com/questions/26807530/upgrade-hyperjaxb3-to-jpa-2-1 – CodeMed Nov 07 '14 at 18:37
  • Looks like you've got an answer in that question. In summary, the hyperjaxb3 team will eventually support JPA 2.1. If you don't want to wait, you may use `` (at your own risk). – jocki Nov 08 '14 at 13:44
  • Thank you. I will review this and mark answered questions as answered when I have a chance to spend time with it, which will either be tomorrow or Monday. – CodeMed Nov 08 '14 at 17:21