深知我心 发表于 2015-6-19 22:58

一道senior面试题,求Java大神乱入

碰到一道senior的面试题,不知道怎么解决,求Java大神指点一下,谢谢了!

用jpa查询某个表,表中除了该entity的属性之外,还有非该entity属性的字段,这种情况下,如何用jpa查询返回对应该字段的entity?

举个例子说明可能更清楚一点:

有一个表如下(entity) freightrate

id          ratestatus         origin         transportmode   ........      lastchangeby
283862      1             North Europe         Air                                  Jack
283863      4               USA               FLC                                 Oelle
283864      2               Frankfurt            LCL                                  Admin
283865      3                Sydney            Air Pre                           Oelle
283866      0                Boston               LCL                                  n/a
.   

其中 id, ratestatus, origin, transportmode 都是属性,可以直接用jpa查询,而lastchangeby 不是entity 属性,现在如何用jpa查询返回 lastchangeby 为 oelle 的 freightrate 对象?

用jpql 和 criteria 都可以,不限制,要求效率高一些

Sky23 发表于 2015-6-20 10:26

调用activeJPA。

kolinsky 发表于 2015-6-20 10:31

这就是所谓的fucked up题嘛。我面试的时候也没有很好的答出来,被题目本身带到思维的小巷子里面去了。

为什么jpa没有定义lastchangeby为属性,那是因为商业逻辑不使用。

要查询最后是谁修改的基本是责任问题,这个时候就不要什么jpa啊,直接去jpa出ID以后live的数据库查询,知道是谁改的,要通知,询问他就好办。这种事情都是玩大了才会有的,使用jpa不一定顺利的时候首先应该考虑事件的时间限制,找出ID,通知有查询live数据库权限的人员。还什么jpql,直接sql了。

要是还要用jpql citeria,再mvn个十几分钟,那还搞屁啊。
页: [1]
查看完整版本: 一道senior面试题,求Java大神乱入