1

私は次のエンティティを持っています:

Channel

@ManyToOne(cascade = { CascadeType.ALL })
@JoinColumn(name = "campaign_business_id")
private CampaignBusiness campaignBusiness;

@ManyToOne(cascade = { CascadeType.ALL })
@JoinColumn(name = "campaign_id")
private Campaign campaign;


Campaign

@ManyToOne(cascade = { CascadeType.ALL })
@JoinColumn(name = "event_id")
private Event event;

CampaignBusiness 
@ManyToOne
@JoinColumn(name = "campaign_id")
private Campaign campaign;

私はCascade.PERSISTのみを使用したいと思います.casacdeでレコードを更新し、削除しないようにしたいからです。

ただし、Cascade.ALLCascade.PERSISTの代わりに記述し、次のコードを使用すると:

Event event = new Event();
Campaign campaign = new Campaign();
campaign.setEvent(event);
CampaignBusiness campaignBusiness = new CampaignBusiness();
campaignBusiness.setCampaign(campaign);
Channel channel = new Channel();
channel.setCampaign(campaign);
channel.setCampaignBusiness(campaignBusiness);
channelDAO.save(channel);

例外が発生します

org.hibernate.TransientObjectException: オブジェクトが保存されていない一時インスタンスを参照しています - フラッシュする前に一時インスタンスを保存します:

4

0 に答える 0