@OneToMany JPA注釈を正しく定義するのに助けが必要です。他の方法を試しましたが、visitorCharacteristicテーブルで外部キー(visitor_revision_id)がnullのようなエラー/問題が発生します。JPA @OneToMany:外部キーがnullです
は、私が「visitor_revision_id」伝えることの困難な故障を示すテストケースがなければ、あなたの助け
@OneToMany JPA注釈を正しく定義するのに助けが必要です。他の方法を試しましたが、visitorCharacteristicテーブルで外部キー(visitor_revision_id)がnullのようなエラー/問題が発生します。JPA @OneToMany:外部キーがnullです
は、私が「visitor_revision_id」伝えることの困難な故障を示すテストケースがなければ、あなたの助け
JPAますVisitorCharacteristic#visitor
フィールドを設定していない場合は、手動で行う必要があります。あなたは、その後のVisitorCharacteristic
秒を追加するためのいくつかの方法がある場合は、同様の特性に訪問者を設定するためのコードを追加する必要があります
public void addVisitorCharacteristic(VisitorCharacteristic visitorCharacteristic) {
if (visitorCharacteristicList == null) {
visitorCharacteristicList = new ArrayList<>();
}
visitorCharacteristic.visitor = this;
visitorCharacteristicList.add(visitorCharacteristic);
}
Hereを、あなたはよく働くあなたのコードとの骨子を見つけることができます - ライン79を見て。
を事前に
@Entity
@JsonIdentityInfo(generator=ObjectIdGenerators.PropertyGenerator.class, property="id")
@ToString
public class Visitor {
@Id
@Column(name="visitor_revision_id")
@GeneratedValue(strategy= GenerationType.IDENTITY)
Long id;
String visitorCode;
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL, mappedBy = "visitor")
List<VisitorCharacteristic> visitorCharacteristicList;
}
@Entity
@JsonIdentityInfo(generator=ObjectIdGenerators.PropertyGenerator.class, property="id")
@ToString
class VisitorCharacteristic {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
Long id;
@JoinColumn(name = "visitor_revision_id")
@ManyToOne(optional = false) //fetch = FetchType.EAGER, cascade = CascadeType.ALL)
Visitor visitor;
@Column(nullable = false)
String attributeCode;
@Column(nullable = false)
String attributeValue;
}
おかげで2つのテーブルを結合したいと思います。
ここではいくつかのものは、あなたが試すことができます:
がVisitorCharacteristic
に結合列の注釈に, nullable = false
を追加セットの両方の方向に関係 Visitor v = new Visitor(); VisitorCharacteristic vc = new VisitorCharacteristic(); v.setVisitorCharacteristicList(Arrays.asList(vc)); vc.setVisitor(v);
障害を示すユニットテストの例を提供できますか? –
お返事ありがとうございました! VisitorCharacteristic#訪問者を手動で設定しなければならないことはわかりませんでした。 – GeorgesD