関係数がManyToManyの2つのクラスがありますが、作成するオーディエンスを作成して後でイベントに追加したいが、 "detached"例外が発生する。Hibernate ManyToMany save
class Event {
@ManyToMany(
fetch = FetchType.LAZY,
targetEntity = Audience.class,
cascade = {CascadeType.PERSIST, CascadeType.MERGE})
@JoinTable(name = "UC_EVENT_AUDIENCE",
joinColumns = @JoinColumn(name = "event_id"),
inverseJoinColumns = @JoinColumn(name = "audience_id"))
private List<Audience> targetAudiences = new ArrayList<>();
}
clsas Audience {
@ManyToMany(fetch = FetchType.LAZY, mappedBy = "targetAudiences")
private List<Event> events = new ArrayList<>();
}
public void run(ApplicationArguments args) throws Exception {
//Generate audience data
List<Audience> audiences = dataGenerator.createAudiences();
//Save to db
audienceRepository.save(audiences);
Event event = new Event();
event.setTargetAudiences(audiences);
eventRepository.save(events);
}
はあなたが意味する「audienceRepository.save(観客を)」と:
をそして、このように私のイベントに追加:
今、私はこのような聴衆を作成することができます「イベント」を保存すると、オーディエンスが節約されますか?私は "audienceRepository.save(観客)"を無視し、イベントを保存しないように見えます。なぜなら、私が "findAll"観客に何もないからです。 – Evgenii
あなたはイベントオブジェクトを通じてオーディエンスを見つけるか、直接オーディエンスを探していますか? –
イベントを保存する前に、視聴者のためにイベントを設定する必要もあります。その双方向関係 –