Java JPA@OneToMany与@JoinTable双向-不包括插入查询中的所有列
我试图用联接表持久化一个一元多父子关系,但在联接表的insert sql中只考虑一列(两列中的一列) 它不包括Java JPA@OneToMany与@JoinTable双向-不包括插入查询中的所有列,java,hibernate,jpa,jpa-2.0,Java,Hibernate,Jpa,Jpa 2.0,我试图用联接表持久化一个一元多父子关系,但在联接表的insert sql中只考虑一列(两列中的一列) 它不包括ITEM_ID列,并且由于下面的错误 java.sql.SQLIntegrityConstraintViolationException:ORA-01400:无法在“投标系统所有者”、“项目投标关系”、“项目ID”中插入NULL 这里有两个问题: public Item addBid(BidDTO bidDTO) { Item item = itemsRepository.fi
ITEM_ID
列,并且由于下面的错误
java.sql.SQLIntegrityConstraintViolationException:ORA-01400:无法在“投标系统所有者”、“项目投标关系”、“项目ID”中插入NULL
这里有两个问题:
public Item addBid(BidDTO bidDTO) {
Item item = itemsRepository.findOne(bidDTO.getItemId());
Bid bid = Bid.builder()
.item(item)
.bidAmount(bidDTO.getBidAmount())
.build();
if(item.getBids() == null){
item.setBids(new HashSet<>());
}
item.getBids().add(bid);
bidRepository.save(bid);
itemsRepository.save(item);
return item;
}
ITEM\u BIDS\u REL
联接表的插入查询中的BID\u ID
列BID\u ID
adpk、FK和ITEM\u ID
保留为FK一样 @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinTable( name = "ITEM_BIDS_REL",
joinColumns = @JoinColumn(name = "ITEM_ID"),
inverseJoinColumns = @JoinColumn(name = "BID_ID"))
@JsonIgnore
private Set<Bid> bids;
@ManyToOne(cascade = CascadeType.ALL)
@JoinTable(name = "ITEM_BIDS_REL",
joinColumns = {@JoinColumn(name = "BID_ID", insertable = false,
updatable = false)},
inverseJoinColumns = {@JoinColumn(name="ITEM_ID", insertable = false,
updatable = false)})
private Item item;
持久性逻辑:
public Item addBid(BidDTO bidDTO) {
Item item = itemsRepository.findOne(bidDTO.getItemId());
Bid bid = Bid.builder()
.item(item)
.bidAmount(bidDTO.getBidAmount())
.build();
if(item.getBids() == null){
item.setBids(new HashSet<>());
}
item.getBids().add(bid);
bidRepository.save(bid);
itemsRepository.save(item);
return item;
}
public Item addBid(BidDTO BidDTO){
Item=itemsRepository.findOne(bidDTO.getItemId());
Bid=Bid.builder()
.项目(项目)
.biddAmount(bidDTO.getbiddAmount())
.build();
if(item.getBids()==null){
item.setBids(新的HashSet());
}
item.getBids().add(bid);
保存(bid);
itemsRepository.save(项目);
退货项目;
}
@Richard Telford,这个问题还没有引起任何注意。我在提出这个问题时是否遗漏了一些东西,比如正确的标签或任何w.r.t.statck溢出过程。实际上,我没有在堆栈溢出上提出问题的经验,这是我这边的第一个问题。@Richard Telford,这个问题还没有引起任何注意。我在提出这个问题时是否遗漏了一些东西,比如正确的标签或任何w.r.t.statck溢出过程。实际上,我没有关于堆栈溢出的问题的经验,这是我这边的第一个问题。