腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
首页
标签
nullpointerexception
#
nullpointerexception
关注
专栏文章
(26)
技术视频
(0)
互动问答
(2)
JPA/Hibernate静态元模型属性未填充-NullPointerException?
2
回答
hibernate
、
jpa
、
nullpointerexception
、
测试
Sunde
设计师
基本测试方法: @Test public void foo() { CriteriaBuilder builder = em.getCriteriaBuilder(); CriteriaQuery<JPAAlbum> query = builder.createQuery(JPAAlbum.class); Root<JPAAlbum> album = query.from(JPAAlbum.class); Assert.assertNotNull(album.get(JPAAlbum_.theme)); // no problem here query.where(builder.equal(album.get(JPAAlbum_.theme).get(JPATheme_.id), 1L)); List<JPAAlbum> results = em.createQuery(query).getResultList(); } FWIW,下面是生成的SQL: select jpaalbum0_.ID as ID32_, jpaalbum0_.AlbumDate as AlbumDate32_, jpaalbum0_.Description as Descript3_32_, jpaalbum0_.Nom as Nom32_, jpaalbum0_.Picture as Picture32_, jpaalbum0_.Theme as Theme32_ from Album jpaalbum0_ where jpaalbum0_.Theme=1 这里有一个persistence.xml可以在测试中使用: <?xml version="1.0" encoding="UTF-8"?> <persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd" version="2.0"> <persistence-unit name="MyPu" transaction-type="RESOURCE_LOCAL"> <provider>org.hibernate.ejb.HibernatePersistence</provider> <class>com.stackoverflow.q3854687.JPAAlbum</class> <class>com.stackoverflow.q3854687.JPATheme</class> <class>com.stackoverflow.q3854687.JPATagTheme</class> <exclude-unlisted-classes>true</exclude-unlisted-classes> <properties> <!-- Common properties --> <property name="javax.persistence.jdbc.driver" value="${jdbc.driver}" /> <property name="javax.persistence.jdbc.url" value="${jdbc.url}" /> <property name="javax.persistence.jdbc.user" value="${jdbc.user}" /> <property name="javax.persistence.jdbc.password" value="${jdbc.password}" /> <!-- Hibernate specific properties --> <property name="hibernate.dialect" value="${jdbc.dialect}" /> <!-- <property name="hibernate.show_sql" value="true"/> --> <property name="hibernate.format_sql" value="true" /> <property name="hibernate.hbm2ddl.auto" value="update" /> </properties> </persistence-unit> </persistence>...
展开详请
赞
0
收藏
0
评论
0
分享
基本测试方法: @Test public void foo() { CriteriaBuilder builder = em.getCriteriaBuilder(); CriteriaQuery<JPAAlbum> query = builder.createQuery(JPAAlbum.class); Root<JPAAlbum> album = query.from(JPAAlbum.class); Assert.assertNotNull(album.get(JPAAlbum_.theme)); // no problem here query.where(builder.equal(album.get(JPAAlbum_.theme).get(JPATheme_.id), 1L)); List<JPAAlbum> results = em.createQuery(query).getResultList(); } FWIW,下面是生成的SQL: select jpaalbum0_.ID as ID32_, jpaalbum0_.AlbumDate as AlbumDate32_, jpaalbum0_.Description as Descript3_32_, jpaalbum0_.Nom as Nom32_, jpaalbum0_.Picture as Picture32_, jpaalbum0_.Theme as Theme32_ from Album jpaalbum0_ where jpaalbum0_.Theme=1 这里有一个persistence.xml可以在测试中使用: <?xml version="1.0" encoding="UTF-8"?> <persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd" version="2.0"> <persistence-unit name="MyPu" transaction-type="RESOURCE_LOCAL"> <provider>org.hibernate.ejb.HibernatePersistence</provider> <class>com.stackoverflow.q3854687.JPAAlbum</class> <class>com.stackoverflow.q3854687.JPATheme</class> <class>com.stackoverflow.q3854687.JPATagTheme</class> <exclude-unlisted-classes>true</exclude-unlisted-classes> <properties> <!-- Common properties --> <property name="javax.persistence.jdbc.driver" value="${jdbc.driver}" /> <property name="javax.persistence.jdbc.url" value="${jdbc.url}" /> <property name="javax.persistence.jdbc.user" value="${jdbc.user}" /> <property name="javax.persistence.jdbc.password" value="${jdbc.password}" /> <!-- Hibernate specific properties --> <property name="hibernate.dialect" value="${jdbc.dialect}" /> <!-- <property name="hibernate.show_sql" value="true"/> --> <property name="hibernate.format_sql" value="true" /> <property name="hibernate.hbm2ddl.auto" value="update" /> </properties> </persistence-unit> </persistence>
热门
专栏
用户11053981的专栏
1.5K 文章
28 订阅
技术博文
589 文章
51 订阅
沉默王二
407 文章
36 订阅
CWIKIUS
1.6K 文章
32 订阅
编程学习之路
194 文章
26 订阅
热门
标签
更多标签
ICP备案
云服务器
对象存储
云点播
即时通信 IM
实时音视频
DNS 解析 DNSPod
内容分发网络 CDN
人脸识别
私有网络
python
java
javascript
人工智能
android
领券