sunlarry
2012-12-10 21:16
浏览 908
已采纳

JPA使用数据库视图问题

在JPA调用数据库视图Menu,使用myeclipse的jpa reverse后,会生成两个类Menu和MenuId

进行查询时,始终报错
代码如下:
[code="java"]
String jpql = "SELECT u FROM Menu u WHERE u.id.userid = ?1";
Query query = getEntityManager().createQuery(jpql);

query.setParameter(1, users);
List

queryList = query.getResultList();
for (Menu c : queryList) {            

    System.out.println(c.getId());  //始终报错 

 }  

[/code]

严重: Servlet.service() for servlet default threw exception
java.lang.NullPointerException
错误行指向System语句行

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • iteye_5246 2012-12-10 22:05
    已采纳

    哥们用这个 createNativeQuery接受一个sql 语句。。只要这个sql语句能在数据库分析器中执行就可以了。
    String sql = "SELECT * FROM t_Menu";//其中

    //创建原生SQL查询QUERY实例
    Query query = em.createNativeQuery(sql);
    //执行查询,返回的是对象数组(Object[])列表,
    //每一个对象数组存的是相应的实体属性
    List objecArraytList = query.getResultList();

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • jinnianshilongnian 2012-12-10 22:12

    是不是主键映射有问题? 贴一下映射

    String jpql = "SELECT u FROM Menu u WHERE u.id.userid = ?1";

    query.setParameter(1, users); //此处users是什么对象? 是不是应该把ql改成u.id=?1

    看看生成的sql对吗

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题