首页 \ 问答 \ JPQL并使用Hibernate选择1:n关系(JPQL and selecting 1:n relationships using Hibernate)

JPQL并使用Hibernate选择1:n关系(JPQL and selecting 1:n relationships using Hibernate)

我有一个条目MenuItem有一种语言。 我还有一个设备需要所有具有设备选择语言的MenuItem。 (然后还有一个AccessGroup,用于确定设备是否可以访问MenuItem)

我有一个适用于AccessGroup选择的查询,但无法考虑如何制定查询以包含语言选择。

简化:

MenuItem
- id
- published
- Language
- AccessGroup
- App

Device
- id
- List<Languages>
- User

AccessGroup
- id
- universal
- <List>AccessGroupLink

AccessGroupLink
- id
- Device
- User
- AccessGroup
- perpetual
- validTo

我如何在JPQL中执行此操作。 目前我已经/尝试过(使用Play!Framework):

return find("SELECT DISTINCT m FROM MenuItem m " +
                    "INNER JOIN m.accessGroups ag " +
                    "LEFT OUTER JOIN ag.accessGroupLinks agl " +
                    "WHERE m.app = ? AND m.language IN ? AND (ag.universal = TRUE OR ((agl.device = ? OR agl.user = ?) AND (agl.validTo >= ? OR agl.perpetual = TRUE))) AND m.published = true", device.app, device.languages, device, device.user, new Date()).fetch();

我添加了m.language IN device.languages,但这不起作用。 所以我想我必须添加一个JOIN,但由于某种原因无法看到。 所以任何帮助都非常感谢。

编辑:我上面的查询得到的错误是:

已捕获到play.db.jpa.JPABase $ JPAQueryException,执行查询时出错SELECT DISTINCT m FROM MenuItem m INNER JOIN m.accessGroups ag LEFT OUTER JOIN ag.accessGroupLinks agl WHERE m.app =? 和m.language IN? AND(ag.universal = TRUE OR((agl.device =?OR agl.user =?)AND(agl.validTo> =?OR agl.perpetual = TRUE)))和m.published = true :org.hibernate。 PropertyAccessException:无法通过models.Language.id的反射getter获取字段值

但我不明白错误,因为model.Language.id是实体的一部分。


I have a an entry MenuItem which has a language. I also have a device which needs all MenuItems which have the language selected by the device. (Then there is also an AccessGroup which determines if a device has access to a MenuItem)

I have a query which works for the AccessGroup selection, but cannot think how to formulate the query to include the language selection.

Simplified:

MenuItem
- id
- published
- Language
- AccessGroup
- App

Device
- id
- List<Languages>
- User

AccessGroup
- id
- universal
- <List>AccessGroupLink

AccessGroupLink
- id
- Device
- User
- AccessGroup
- perpetual
- validTo

How do I do this in JPQL. Currently I have/tried (using the Play! Framework):

return find("SELECT DISTINCT m FROM MenuItem m " +
                    "INNER JOIN m.accessGroups ag " +
                    "LEFT OUTER JOIN ag.accessGroupLinks agl " +
                    "WHERE m.app = ? AND m.language IN ? AND (ag.universal = TRUE OR ((agl.device = ? OR agl.user = ?) AND (agl.validTo >= ? OR agl.perpetual = TRUE))) AND m.published = true", device.app, device.languages, device, device.user, new Date()).fetch();

I added m.language IN device.languages, but that doesn't work. So I guess I have to add a JOIN, but cannot see how for some reason. So any help is really appreciated.

EDIT: The error I get with the query above is:

A play.db.jpa.JPABase$JPAQueryException has been caught, Error while executing query SELECT DISTINCT m FROM MenuItem m INNER JOIN m.accessGroups ag LEFT OUTER JOIN ag.accessGroupLinks agl WHERE m.app = ? AND m.language IN ? AND (ag.universal = TRUE OR ((agl.device = ? OR agl.user = ?) AND (agl.validTo >= ? OR agl.perpetual = TRUE)))AND m.published = true: org.hibernate.PropertyAccessException: could not get a field value by reflection getter of models.Language.id

But I don't understand the error, as model.Language.id is part of the Entity.


原文:https://stackoverflow.com/questions/17652312
更新时间:2022-04-24 11:04

最满意答案

优秀的程序员和优秀的平面设计师都是非常好的,职业也都是非常优秀的人才。并没有哪一个行业比哪一个行业更好。不过在技术层面上来说,编程的技术含量要更高一些,更复杂一些。

其他回答

不管平面设计还是编程都只是笼统的说法,其中有很多内容的。
编程有语音有C,C++,C#,jave,html等等等很多种类。
而平面设计也有广告设计,宣传册设计,网站设计等等。
这个你说哪个好真的没法比,打个比方一个写C的程序员和做网站设计的能比么?
写c的能力够的话,工资都是按至少万算的,大神更不说了。网站设计撑死也就7~8000.

平面设计,以感性思维为主,美术专业的学合适,

编程,以理性思维为主,讲逻辑性,工科的学它合适.

同时具有这两种能力的人,很少,看你是哪种吧

 

相关问答

更多
  • 宁夏创新职业技术学校 联系地址 西夏区怀远路亚麻厂办公楼四楼 交通线路 公交18、102,青松电脑培训
  • 爵视文化传媒设置平面设计师培训课程,学习内容以实战为主,想成为实力派设计师可以去问问,希望对你有帮助!
  • 试试在百度地图上搜下附近有否电脑培训的课程,一般都有这个专业学的。要不然就直接去广告公司做学徒,但可能会没有工资的,前期可以自己在网络上学习基本的东西!希望能帮到你,设计师这行业很辛苦!但也很有成就感!
  • 这家还是听过的了,有个哥们说的!
  • 泰兴电脑城那里有个阳光电脑学校可以学 三峡学院也个分校 百度下 就晓得了
  • 厦门新东方电脑学校,我朋友在那里毕业很久了,老师蛮负责的,而且包会的。学费也不是很贵。
  • 你既然对编程感兴趣,就去学编程吧,这行也挺不错的,很适合你这种爱动脑子的人。 你也有基础,现在年纪也不搭,去找一个学校,学几年计算机,专门练习一下编程方面,出来就业不是个问题。建议你搞php,或者java web开发。前景不错的 记住,兴趣是最好的老师,呵呵。有兴趣了,动力才会源源不断的来。这是我的切身感受,我就是喜欢编程,现在在学计算机,搞java web开发。一点也不后悔。加油吧 有问题可以找我,呵呵
  • 个人认为平面设计要比编程好一些。 平面设计是横向的(知识面宽),与艺术美术的关系密切,与生活的关系比编程要密切一些。难度不大,重在创意。不但有前途,就算没前途也可以陶冶艺术情操,是一种美学,一个人就可以当老板随心所欲。 编程是纵深的(系统原理),是逻辑性的,难度较高,编好程序非常不容易,一个人是无法当老板的。一个复杂的程序一个人是不能胜任的。
  • 优秀的程序员和优秀的平面设计师都是非常好的,职业也都是非常优秀的人才。并没有哪一个行业比哪一个行业更好。不过在技术层面上来说,编程的技术含量要更高一些,更复杂一些。

相关文章

更多

最新问答

更多
  • 获取MVC 4使用的DisplayMode后缀(Get the DisplayMode Suffix being used by MVC 4)
  • 如何通过引用返回对象?(How is returning an object by reference possible?)
  • 矩阵如何存储在内存中?(How are matrices stored in memory?)
  • 每个请求的Java新会话?(Java New Session For Each Request?)
  • css:浮动div中重叠的标题h1(css: overlapping headlines h1 in floated divs)
  • 无论图像如何,Caffe预测同一类(Caffe predicts same class regardless of image)
  • xcode语法颜色编码解释?(xcode syntax color coding explained?)
  • 在Access 2010 Runtime中使用Office 2000校对工具(Use Office 2000 proofing tools in Access 2010 Runtime)
  • 从单独的Web主机将图像传输到服务器上(Getting images onto server from separate web host)
  • 从旧版本复制文件并保留它们(旧/新版本)(Copy a file from old revision and keep both of them (old / new revision))
  • 西安哪有PLC可控制编程的培训
  • 在Entity Framework中选择基类(Select base class in Entity Framework)
  • 在Android中出现错误“数据集和渲染器应该不为null,并且应该具有相同数量的系列”(Error “Dataset and renderer should be not null and should have the same number of series” in Android)
  • 电脑二级VF有什么用
  • Datamapper Ruby如何添加Hook方法(Datamapper Ruby How to add Hook Method)
  • 金华英语角.
  • 手机软件如何制作
  • 用于Android webview中图像保存的上下文菜单(Context Menu for Image Saving in an Android webview)
  • 注意:未定义的偏移量:PHP(Notice: Undefined offset: PHP)
  • 如何读R中的大数据集[复制](How to read large dataset in R [duplicate])
  • Unity 5 Heighmap与地形宽度/地形长度的分辨率关系?(Unity 5 Heighmap Resolution relationship to terrain width / terrain length?)
  • 如何通知PipedOutputStream线程写入最后一个字节的PipedInputStream线程?(How to notify PipedInputStream thread that PipedOutputStream thread has written last byte?)
  • python的访问器方法有哪些
  • DeviceNetworkInformation:哪个是哪个?(DeviceNetworkInformation: Which is which?)
  • 在Ruby中对组合进行排序(Sorting a combination in Ruby)
  • 网站开发的流程?
  • 使用Zend Framework 2中的JOIN sql检索数据(Retrieve data using JOIN sql in Zend Framework 2)
  • 条带格式类型格式模式编号无法正常工作(Stripes format type format pattern number not working properly)
  • 透明度错误IE11(Transparency bug IE11)
  • linux的基本操作命令。。。