gpt4 book ai didi

java - 使用实体 +"mapped by"比使用 id 有什么优势吗?

转载 作者:行者123 更新时间:2023-11-30 06:29:05 26 4
gpt4 key购买 nike

这种方法有什么大的优点吗:

@Entity
public class A {
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name = "ID_B")
private B b;
}

@Entity
public class B {
@OneToMany(mappedBy = "a", cascade = CascadeType.ALL)
private List<A> aList;
}

...而不是这个?...

@Entity
public class A {
@Column(name = "ID_B")
private Long idB;
}

@Entity
public class B {
//no reference to A
}

我认为第二个更适合封装(因为我在不同的项目中有 A 和 B 类,第二个不需要引用第一个)。

最佳答案

一个优点是,使用正确的 JPA 关系允许您从数据库获取 A,并在 A 上使用简单的 getter 来获取 B:myA.getB()

而如果您使用 long,当您想要获取一些 B 时,您将需要再次手动查询数据库。

请注意,您没有义务双向声明这种关系。像这样的事情是完全有效的:

@Entity
public class A {
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name = "ID_B")
private B b;
}

@Entity
public class B {
//no reference to A
}

当然,这完全取决于您想要实现的目标!

关于java - 使用实体 +"mapped by"比使用 id 有什么优势吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46497998/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com