【发布时间】:2019-07-17 04:51:00
【问题描述】:
我是 Hibernate 的新手。我与 Account 和 Transaction 之间的双向映射有 OneToMany 关系。我没有在任何一个类中使用 @JoinColumn 并在非拥有 Account 类中使用 @mappedBy。一切正常。使用内存数据库中的 H2,在 Transaction 表中创建新的连接列。那么在 OneToMany 关系中@JoinColumn 有什么用——它只用于单向映射吗?下面是代码。我也读了参考What's the difference between @JoinColumn and mappedBy when using a JPA @OneToMany association
public class Account {
@OneToMany( mappedBy="account", cascade=CascadeType.ALL)
List<Transaction> list= new ArrayList<Transaction>();
}
public class Transaction {
@ManyToOne
Account account;
}
应用类:
Account a = new Account("savings");
Transaction t1 = new Transaction("shoe purchase", 45);
t1.setAccount(a);
a.getList().add(t1);
accountRepository.save(a);
输出:
事务表有一个外键条目,即帐户表中那一行的帐号。在 Transaction 表中创建 ACCOUNT_ID 列。
没有创建额外的表。
【问题讨论】: