如果我有一个实体类“ Task”,而该实体类在数据库中具有一个“ Orders”的外键列,那么该如何用代码表示? “ Task”类是否应将“ Order”对象作为其私有字段之一并作为其构造函数的一部分?还是根本不需要它,我可以在需要时实例化“ Order”对象?
答案 0 :(得分:0)
这取决于您如何将表映射到实体。
通常,带有“ bar”表外键的表“ foo”将表示为Foo和Bar java类。 Foo将拥有对Bar类的引用。
如果使用Hibernate之类的框架,则会看到以下内容:
@Entity
@Table(name="foo")
public class Foo {
//...
@ManyToOne
@JoinColumn(name="bar_id", nullable=false)
private Bar bar;
public Foo(Bar b) {bar = b;}
// getters and setters
}
这表示foo表具有指向bar表条目的bar_id列。
Foo实体拥有对Bar实体的引用。
无论您是使用休眠还是手动处理数据库(例如,使用DAO模式),建议您都拥有一个接收“外来”实体的构造函数。
查看这些链接以获取更多信息:
https://www.baeldung.com/java-dao-pattern
https://www.baeldung.com/hibernate-one-to-many
希望这会有所帮助,欢迎堆栈溢出