首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

#jpa

现在springdata &jpa 用的人还多不多??

JPA/Hibernate静态元模型属性未填充-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>... 展开详请
基本测试方法: @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>
领券