首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >JPA/Hibernate静态元模型属性未填充-NullPointerException?

JPA/Hibernate静态元模型属性未填充-NullPointerException?

提问于 2018-01-29 00:07:05
回答 2关注 0查看 8.5K

可以尝试下这个:

代码语言:txt
复制
...
Root<JPAAlbum> albm = cq.from(JPAAlbum.class);
... albm.get(JPAAlbum_.theme) ... ;

由Hibernate自动生成,如下所示

代码语言:txt
复制
public static volatile SingularAttribute<JPAAlbum, JPATheme> theme;

或者 尝试下:

代码语言:txt
复制
    CriteriaBuilder cb = em.getCriteriaBuilder();

    CriteriaQuery<JPAAlbum> cq = cb.createQuery(JPAAlbum.class) ;
    Root<JPAAlbum> albm = cq.from(JPAAlbum.class);
    cq.where(cb.equal(albm.get(JPAAlbum_.theme).get(JPATheme_.id),
                        session.getTheme().getId())) ;

堆栈跟踪:

代码语言:txt
复制
Caused by: java.lang.NullPointerException
    at org.hibernate.ejb.criteria.path.AbstractPathImpl.get(AbstractPathImpl.java:138)
    at net.wazari.dao.jpa.WebAlbumsDAOBean.getRestrictionToAlbumsAllowed(WebAlbumsDAOBean.java:55)

在JBossEntityManager

代码语言:txt
复制
     for (ManagedType o : em.getMetamodel().getManagedTypes()) {
            log.warn("___") ;
            for (Object p : o.getAttributes()) {
                log.warn(((Attribute)p).getName()) ;
            }
        }

然而,Hibernate知道我的元模型

代码语言:txt
复制
   log.warn("_+_"+JPAPhoto_.id+"_+_") ;

或者尝试下这个“”

代码语言:txt
复制
java.lang.NullPointerException
    at org.hibernate.ejb.criteria.path.AbstractPathImpl.get(AbstractPathImpl.java:138)
    at net.wazari.dao.test.TestMetaModel.foo(TestMetaModel.java:55)

输出

代码语言:txt
复制
ant compile
or
ant dist

启动JUnit测试net.wazari.dao.test.TestMetaModel

代码语言:txt
复制
 CLASSPATH=`sh runTest.sh` java org.junit.runner.JUnitCore  net.wazari.dao.test.TestMetaModel
相关文章

相似问题

相关问答用户
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档