は、私は次のエンティティを持っているが見つかりませんでした:私は追加する前に複合キーのプロパティ
@Entity @Table @Audited
public class MyParent {
@Id
@Column
Integer id;
@OneToMany(mappedBy = "id.myParent", orphanRemoval = true)
@Cascade({ CascadeType.ALL })
List<Child> children;
}
@Entity @Table @Audited
public class Child {
@EmbeddedId
ChildId id = new ChildId();
}
@Embeddable
public class ChildId implements Serializable {
@MapsId("my_parent")
@JoinColumn(name = "my_parent_id")
@ManyToOne
MyParent myParent;
@Column
String name;
}
は、注釈@Audited
すべてがうまく働きました。その後、Hibernate 5.1は合成キーが好きではなかったため、すべてが失敗しました(HHH-7625参照)。
これまでずっとかかっていましたが、今は5.2に更新されています。今はすべてが機能します...監査を除いて。
org.hibernate.QueryException:プロパティを解決できませんでした:のmyParent_id:私は次の例外を取得org.acme.project.Child_AUDを[org.acme.project.Child_AUDからe__を選択e__ここで、e __ myParent_id =。 :myParent_idとe__.originalId.REV.id =(<取り外し内部クエリ>)]
私はこのコードを使用:
AuditReader auditReader = AuditReaderFactory.get(this.em);
MyParent parent = auditReader .find(MyParent.class, id, revision);
parent.getChildren(); // exception is here
のでEnversからmyParent_id
を取得していますか?よく分かりません。私はそのIDに列my_parent_id
の名前を変更しようとしましたが、何もしませんでした。
そして、私はChildId.myParent
をIDに置き換えようとしましたが、それはどちらも役に立ちません。
This paragraphのドキュメントは非常に似ていますが、その内容に基づいて何をすべきかわかりません。
何か不足していますか?それとももう一つのバグですか?コードをどのように動かすには?
'MyParent'の' @ OneToMany'マッピングで '@AuditMappedBy(mappedBy =" id.myParent ")'を試して、Enversに影響を与えるかどうか確認しましたか? – Naros
@Narosはい、例外は次のとおりです。「@AuditMappedByは存在しないプロパティを指します:org.acme.project.Child.id.myParent」 –