別のエンティティとのオプションの 1 対 1 の関係を含むエンティティの読み込みに問題があります。
対応するマッピングを使用してエンティティをロードしようとすると、すべて問題ないように見えますが、時々 (CitationInformation
対応する なしでa をロードしようとした場合だと思いVenueTopic
ます)、次の例外が発生します。
org.hibernate.PropertyAccessException: could not set a field value by reflection setter of
これらは私のクラスです:
@Entity
public class CitationInformation {
@Id
@GeneratedValue
private long identifier;
private String doi;
@OneToOne(optional = true, targetEntity = VenueTopic.class)
@JoinColumn(name = "venue")
@NotFound(action=NotFoundAction.IGNORE)
private String venue;
...
}
@Entity
public class VenueTopic {
@Id
private String venueName;
private String topic;
...
}
残念ながら、休止状態のエンティティを、休止状態によって生成されなかった別のテーブルのデータと統合する必要があったため、この汚い状況に対処する必要があります。
@OneToOne
私は関係の中で何かを台無しにしたと思います。オプションであるという事実と、欠損値を処理する方法を正しく定義したかどうかはわかりません。
私が望む動作は、CitationInformation
常に を含む必要がありますvenue
が、関係は同じ を持つエンティティがある場合にのみ存在する必要があります。VenueTopic
venueName