java – 使用JPQL从两个表中选择
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 使用JPQL从两个表中选择,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2295字,纯文字阅读大概需要4分钟。
内容图文
我正在使用JPQL来检索数据.我可以使用该语句获取数据
List persons = null;
persons = em.createQuery("select p.albumName from PhotoAlbum p , Roleuser r
where r = p.userId and r.userID = 1");
现在我可以使用这个来获取相册名称:
int i=0;
for (i=0;i<persons.size(); i++)
{
System.out.println("Testing n "+ i +" " + persons.get(0));
}
现在我想获取专辑名称和roleuser的名为firstname的行
我正在使用查询
persons = em.createQuery("select r.firstName , p.albumName from PhotoAlbum p ,
Roleuser r where r = p.userId and r.userID = 1").getResultList();
现在如何获取行firstname和albumname作为persons.get(0)返回一个对象
通过运行代码:
for (i=0;i<persons.size(); i++)
{
//r = (Roleuser) persons.get(i);
System.out.println("Testing n "+ i +" " + persons.get(i));
}
我明白了:
Testing n 0 [Ljava.lang.Object;@4edb4077
INFO: Testing n 1 [Ljava.lang.Object;@1c656d13
INFO: Testing n 2 [Ljava.lang.Object;@46dc08f5
INFO: Testing n 3 [Ljava.lang.Object;@654c0a43
如何映射persons.get(0)并获取firstname和albumname?
解决方法:
Now how do get the rows firstname and albumname as the persons.get(0) is returning a object
SELECT子句中具有多个select_expressions的查询返回Object [](或Object []列表).从JPA规范:
4.8.1 Result Type of the SELECT Clause
The type of the query result specified
by the SELECT clause of a query is an
entity abstract schema type, a
state-field type, the result of an
aggregate function, the result of a
construction operation, or some
sequence of these.The result type of the SELECT clause
is defined by the the result types of
the select_expressions contained in
it. When multiple
select_expressions are used in the SELECT clause, the result of the query
is of typeObject[]
, and the
elements in this result correspond in
order to the order of their
specification in the SELECT clause and
in type to the result types of each of
the select_expressions.
所以在你的情况下,你可能想要这样的东西:
for (i=0;i<persons.size(); i++) {
//r = (Roleuser) persons.get(i);
System.out.println("Testing n " + i + " " + persons.get(i)[0] + ", " +
persons.get(i)[1]);
}
请注意,通过在FROM子句中使用笛卡尔积指定内连接和在WHERE子句中指定连接条件不如指定显式连接实体关系(使用[LEFT [OUTER] | INNER] JOIN语法) .请参阅规范中的整个4.4.5连接部分.
参考
> JPA 1.0规范
>第4.8.1节“SELECT子句的结果类型”
>第4.8.2节“SELECT子句中的构造函数表达式”
>第4.4.5节“连接”
内容总结
以上是互联网集市为您收集整理的java – 使用JPQL从两个表中选择全部内容,希望文章能够帮你解决java – 使用JPQL从两个表中选择所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。