小编Ank*_*kit的帖子

如果我们不在OneToMany注释中指定mappedBy属性怎么办?

这些天我正在用hibernate学习JPA.我无法理解为什么如果未指定mappedBy属性,hibernate会为双向OnetoMany关系提供错误.以下是我收到错误的代码:

@Entity
public class Item {
    @Id
    private long id;
    private String name;
    private String description;
   @OneToMany()
    Set<Bid> bids = new HashSet<Bid>();
Run Code Online (Sandbox Code Playgroud)

出价是ITEM的子实体

@Entity(name="BIDS")
public class Bid {
    @Id
    @Column(name="BID_ID")
    private Long id;    
    private Double amount;  
    @ManyToOne
    @JoinColumn(name="ITEM_ID")
    Item item;
Run Code Online (Sandbox Code Playgroud)

在主类我保存父和子实体:

Transaction transaction = session.beginTransaction();
        Item item = new Item();
        item.setId(111);
        item.setDescription("ITEM Description");
        item.setName("Name1");
        Bid bid = new Bid();
        bid.setId(21l);
        bid.setAmount(1.1);
        bid.setItem(item);
        Set<Bid> bids = new HashSet<Bid>();
        bids.add(bid);
        item.setBids(bids);
        session.save(item);
        session.save(bid);
        transaction.commit();
Run Code Online (Sandbox Code Playgroud)

但是hibernate尝试执行以下查询并抛出ITEM_BIDS表不存在.

Hibernate: insert into Item (description, name, id) …
Run Code Online (Sandbox Code Playgroud)

java hibernate jpa

0
推荐指数
1
解决办法
616
查看次数

标签 统计

hibernate ×1

java ×1

jpa ×1