我是 Hibernate 环境的新手。我有一个基本问题,我仍在努力理解为什么人们选择 Hibernate 而不是 SQL。
我有两张表,可以说一张是用户,一张是书。
一个用户可以拥有多本书,但一本书只有一个所有者。
如果我使用 SQL,我尝试写在
Table User,
int uid
PRIMARY KEY (uid)
Table Book,
int bid
int oid //ownerid
PRIMARY KEY (bid)
FOREIGN KEY (oid) REFERENCES User(uid)
我无法在 Hibernate 中执行此操作。我尝试了以下方法:
生成了一个没有任何关系的用户表,只有@Iduid 的注解。
@Entity
@Table(name="USER")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "uid")
private Long uid;
public Long getUid()
{ return uid;}
}
生成了一个书桌,但我无法理解这一点。互联网上的一切都说我需要使用@ManyToOne和@JoinColumns。如果我使用它们,我需要有一个对象:
@Entity
@Table(name = "BOOK")
public class Book{
@ManyToOne
@JoinColumn(name="uid",
referencedColumnName = "What should I write here?")
@Column(name ="oid") //owner id
private User user;
}
1- 为什么我需要在书表中为我的 uid 创建一个用户对象?我只想用外键约束在我的书籍表中存储一个用户 ID(如果用户不存在,那么这本书也不能存在)
2-另外,如果我想访问所有者的用户 ID,我应该使用这个:
public Long getOwnerId()
{
return user.getUid();
}
3- 如果我想更改书的所有者,我该怎么做?由于我的 book 对象中有一个完整的用户成员,我如何只更新我的 book 表中的 ownerid?
30秒到达战场
繁星淼淼
Smart猫小萌
相关分类