Java NetBeans生成带有错误的JPA控制器
我正在使用NetBeans 6.8构建SpringMVC应用程序 技术:Java NetBeans生成带有错误的JPA控制器,java,hibernate,netbeans,jpa,spring-mvc,Java,Hibernate,Netbeans,Jpa,Spring Mvc,我正在使用NetBeans 6.8构建SpringMVC应用程序 技术: SpringMVC2.5 德比数据库 为ORM休眠 GlassFish v3服务器 我使用实体类中的新JPA控制器类添加ORM文件。它应该生成用于管理带有我的POJO文件的查询的类 问题是,NetBeans生成以下代码,并且不会编译: public int getBrandCount() { EntityManager em = getEntityManager(); try {
- SpringMVC2.5
- 德比数据库
- 为ORM休眠
- GlassFish v3服务器
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();
}
}
public int getBrandCount(){
EntityManager em=getEntityManager();
试一试{
CriteriaQuery cq=em.getCriteriaBuilder().createQuery();
根rt=cq.from(品牌等级);
选择(em.getCriteriaBuilder().count(rt));
查询q=em.createQuery(cq);
返回((长)q.getSingleResult()).intValue();
}最后{
em.close();
}
}
在图中,出现了NetBeans错误:
看起来的方法getCriteriaBuilder
尚未实现。或者我不能在代码中使用它的其他原因
我不知道我应该提供什么其他信息,所以请询问您是否想到了什么
谢谢NetBeans正在生成JPA2.0代码,因此您需要类路径上的JPA2.0API来编译代码(并需要JPA2.0提供程序来运行)。由于您使用的是Hibernate,以下是使用Hibernate Entity Manager 3.5.1-Final所需的库: 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 org.hibernate:hibernate entitymanager:jar:3.5.1-Final:compile +-org.hibernate:hibernate核心:jar:3.5.1-Final:compile |+-antlr:antlr:jar:2.7.6:compile |+-commons集合:commons集合:jar:3.2:compile |+-dom4j:dom4j:jar:1.6.1:compile |\ xmlapi:xmlapi:jar:1.0.b2:compile |\-javax.transaction:jta:jar:1.1:compile +-org.hibernate:hibernate注释:jar:3.5.1-Final:compile |\-org.hibernate:hibernate commons注释:jar:3.2.0.Final:compile +-cglib:cglib:jar:2.2:compile |\-asm:asm:jar:3.1:编译 +-javassist:javassist:jar:3.9.0.GA:compile \-持久性:hibernate-jpa-2.0-api:jar:1.0.0.Final:compile
我在部署项目时遇到了类似的问题
- Netbeans 7.0.1
- ApacheTomcat7
- 冬眠3
当我删除ejb持久性库时,getCriteriaBuilder对我来说运行良好 我遇到了这个问题,发现我在项目库管理器列表中有Hibernate JPA库(随Netbeans一起提供)高于持久性(JPA 2.0)库。我将持久性移到Hibernate之上,它解决了编译问题。看来JPA2.0+Derby DB不是好朋友。它实际上在MySQL中工作得更好:-这与MySQL或Derby无关(在JPA2.0中工作得很好)。