Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JPA:从其他实体查询对象和单个值_Jpa_Named Query - Fatal编程技术网

JPA:从其他实体查询对象和单个值

JPA:从其他实体查询对象和单个值,jpa,named-query,Jpa,Named Query,JPA是否可以查询一个数据库以获取一个实体,该实体填充了属于另一个表/实体的附加字段 我有一个保留表,它保存另一个表pois中记录(实体)的外键,该表必须包含感兴趣的列:poid和poiType 我想要一个ReservationEntity.POID和ReservationEntity.poiType,而不是一个字段ReservationEntity.poi(以最终获得poi.poiType),我想知道是否可以通过NamedQuery实现这一点: @NamedQuery(name="Reserv

JPA是否可以查询一个数据库以获取一个实体,该实体填充了属于另一个表/实体的附加字段

我有一个保留表,它保存另一个表pois中记录(实体)的外键,该表必须包含感兴趣的列:poid和poiType

我想要一个ReservationEntity.POID和ReservationEntity.poiType,而不是一个字段ReservationEntity.poi(以最终获得poi.poiType),我想知道是否可以通过NamedQuery实现这一点:

@NamedQuery(name="ReservationEntity.findByRfId", query="SELECT r, p.poiType FROM ReservationEntity r LEFT JOIN PoiEntity p ON r.poiId = p.poiId  WHERE r.rfId = :rfId")
…既然你读了我的问题,你可以想象这是行不通的

这样做可能吗

例外情况如下:

Internal Exception: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'POITYPE' in 'field list'
Error Code: 1054
Call: SELECT reservationId, endTime, notification, poiId, POITYPE, startTime, status, timeZone, tstamp, type FROM reservations WHERE (reservationId = ?)
    bind => [1 parameter bound]
Query: ReadObjectQuery(name="ReservationEntity.findById" referenceClass=ReservationEntity sql="SELECT t1.reservationId, t1.authInfo, t1.endTime, t1.evsp, t1.notification, t1.poiId, t1.POITYPE, t1.startTime, t1.status, t1.timeZone, t1.tstamp, t1.type FROM reservations t1 LEFT OUTER JOIN pois t0 ON (t1.poiId = t0.poiId) WHERE (t1.reservationId = ?)")
    at org.eclipse.persistence.exceptions.DatabaseException.sqlException(DatabaseException.java:340)

到现在为止,我使用数据库视图而不是@Entity(…)注释的表实现了这一点。
但是我没有更新实体的要求。但是,只要只修改一个表的列并使用内部联接,就可以更新视图:

它“不工作”?我的天,这是对问题的描述性定义。也许你可以说明发生了什么?什么异常+堆栈跟踪?结果如何?执行时调用了什么SQL查询?请参见编辑后的问题。