2010-06-12 5 views
2

NetBeans 6.8을 사용하여 Spring MVC 응용 프로그램을 작성하고 있습니다.NetBeans가 오류가있는 JpaController를 생성합니다.

기술 :

  • 스프링 MVC 2.5
  • 더비 DB
  • 최대 절전 모드 ORM에 대한
  • 글래스 피쉬 v3의 서버

I가 엔티티 클래스에서 새로운 JPA 컨트롤러 클래스를 사용 ORM 파일 추가. 그것은 내 POJO 파일을 사용하여 쿼리를 관리하기위한 클래스를 생성해야합니다.

문제가 넷빈즈는 다음 코드를 생성, 컴파일되지 않습니다이다 : alt text http://i46.tinypic.com/dy0t1d.jpg

그것은 보이는 메소드처럼 Entity Manager InterfacegetCriteriaBuilder가 구현되지 않은 것입니다 : 사진에서

public int getBrandCount() { 
     EntityManager em = getEntityManager(); 
     try { 
      CriteriaQuery cq = em.getCriteriaBuilder().createQuery(); 
      Root<Brand> rt = cq.from(Brand.class); 
      cq.select(em.getCriteriaBuilder().count(rt)); 
      Query q = em.createQuery(cq); 
      return ((Long) q.getSingleResult()).intValue(); 
     } finally { 
      em.close(); 
     } 
    } 

, 넷빈즈 오류가 발생 . 또는 코드에서 사용할 수없는 다른 이유가 있습니다.

내가 제공해야하는 다른 정보가 무엇인지 알 수 없으므로 마음에 무엇이 있는지 물어보십시오. 당신은 당신의 코드 (그리고 그것을 실행하는 JPA 2.0 제공자를) 컴파일 클래스 패스에 JPA 2.0 API가 필요하므로

감사

답변

1

NetBeans는 JPA 2.0 코드를 생성한다. 당신은 최대 절전 모드를 사용하고 있기 때문에, 여기 Hibernate 엔티티 관리자를 사용하는 데 필요한 라이브러리가 3.5.1-최종 있습니다

 
org.hibernate:hibernate-entitymanager:jar:3.5.1-Final:compile 
+- org.hibernate:hibernate-core:jar:3.5.1-Final:compile 
| +- antlr:antlr:jar:2.7.6:compile 
| +- commons-collections:commons-collections:jar:3.2:compile 
| +- dom4j:dom4j:jar:1.6.1:compile 
| | \- xml-apis:xml-apis:jar:1.0.b2:compile 
| \- javax.transaction:jta:jar:1.1:compile 
+- org.hibernate:hibernate-annotations:jar:3.5.1-Final:compile 
| \- org.hibernate:hibernate-commons-annotations:jar:3.2.0.Final:compile 
+- cglib:cglib:jar:2.2:compile 
| \- asm:asm:jar:3.1:compile 
+- javassist:javassist:jar:3.9.0.GA:compile 
\- org.hibernate.javax.persistence:hibernate-jpa-2.0-api:jar:1.0.0.Final:compile 
+0

JPA 2.0 + Derby DB는 좋은 친구가 아닌 것 같습니다. 실제로 MySQL과 함께 더 잘 작동합니다 : - | – Xorty

+0

이것은 IMO가 MySQL이나 Derby (JPA 2.0과 잘 동작 함)와는 아무 관련이 없습니다. –

+0

올바른 libs 문제가 발생했습니다. 고마워 – Xorty

0

  • 넷빈즈 7.0.1
  • 로 프로젝트를 배포 할 때 나는 비슷한 문제를 가지고
  • 아파치 톰캣 7
  • Hibernate는

데이터베이스에서 클래스 개체를 매핑 3, 나는 그것을 위스콘신 혼합 컨트롤러가 Java Persistence Controller에 의해 쉽게 생성 될 수 있도록합니다. 문제는 동일합니다. getCriteriaBuilder는 JPA 1.0에서 지원되지 않기 때문에 문제입니다. 프로젝트 클래스 패스에서 확인한 결과, Persistence Library는 프로젝트 가져 오기 이후 ejb3 및 EclipseLink (JPA2.0)의 지속성 라이브러리 인 두 개의 지속성 라이브러리를 가져온 이후로 사용되지 않았습니다.

ejb 영속성 라이브러리를 제거하면 getCriteriaBuilder가 정상적으로 작동합니다.

1

이 문제가 발생하여 프로젝트 라이브러리 관리자 목록의 지속성 (JPA 2.0) 라이브러리 위에있는 Hibernate JPA 라이브러리 (Netbeans에 포함되어 있음)가 있음을 발견했습니다. 나는 Persistence를 Hibernate 위로 옮겼고 컴파일 문제를 해결했다.

관련 문제