1
@Embeddable
クラスMyEntityPK
に複合主キーを含むJPAエンティティMyEntity
があります。
私は方法getThreeColumnsFromMyEntity()
でネイティブSQLクエリを使用しています:JPAネイティブSQLクエリマッピングエラー?
public List<MyEntity> getThreeColumnsFromMyEntity() {
List<MyEntity> results = em.createNativeQuery("select pid,name,dateofbirth from (select pid,name, dateofbirth,max(dateofbirth) "
+ "over(partition by pid) latest_dateofbirth from my_entity_table) where"
+ " dateofbirth = latest_dateofbirth;","myEntityMapping").getResultList();
return results;
マイ@SqlResultSetMapping
:
@SqlResultSetMapping(
name = "myEntityMapping",
entities = {
@EntityResult(
entityClass = MyEntityPK.class,
fields = {
@FieldResult(name = "PID", column = "pid"),
@FieldResult(name = "NAME", column = "name")}),
@EntityResult(
entityClass = MyEntity.class,
fields = {
@FieldResult(name = "dateofbirth", column = "dateofbirth")})})
:@Column(name="DATEOFBIRTH")
、"PID"
と"NAME"
。
SQLステートメントをデータベース上で直接テストしたところ、正常に動作しました。私は、Eclipse上でそれを実行すると
私は、Oracleエラーを取得:
ORA-00911 and "Error code 911 , Query: ResultSetMappingQuery [..]
私の推測ではありマッピングと間違って何かがあるが、私はそれが何であるかを見つけることができないです。
何をチェックし、ここで意味のエラーについて見てみましょうORA-00911:無効な文字です。 これは、あなたに調査のヒントを与えます –