如何在Java对象中表示外键

时间:2019-07-04 19:04:11

标签: java class object foreign-keys

如果我有一个实体类“ Task”,而该实体类在数据库中具有一个“ Orders”的外键列,那么该如何用代码表示? “ Task”类是否应将“ Order”对象作为其私有字段之一并作为其构造函数的一部分?还是根本不需要它,我可以在需要时实例化“ Order”对象?

1 个答案:

答案 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

希望这会有所帮助,欢迎堆栈溢出