【问题标题】:A class modeling a M:N relationship in Java: remember instances or just primary keys?在 Java 中建模 M:N 关系的类:记住实例还是只是主键?
【发布时间】:2013-05-13 18:00:07
【问题描述】:

我有一个类Lease 模拟类CustomerVideoGame 之间的关系。非常简单明了;它看起来像这样:

class Lease() {
    private VideoGame videoGame;
    private Customer customer;
    // etc.
    public Lease(VideoGame videoGame, Customer customer) {
        this.videoGame = videoGame;
        this.customer = customer;
    }
}

这三个类中的每一个都由具有自动生成索引的数据库表表示,另外leases 表还有一个外键来引用CustomerVideoGame

在从数据库中检索Lease 时,我应该...

  1. 继续在我的getLease(long id) 方法中检索VideoGameLease 实例,并将这些对象存储在Lease 实例中
  2. 或者,Lease 类只记住“外键”是否更好,我应该只在需要时才实际检索CustomerVideoGame 的实例?这需要将Lease 类更改为

    类租赁(){ 长视频游戏; 长期客户; // ETC。 }

first 方法似乎更自然,但我正在寻找一些“最佳实践”的建议。谢谢!

【问题讨论】:

    标签: java relationship


    【解决方案1】:

    如果您使用 ORM 框架(Hibernate、JPA 等),您应该根据需要创建类关系,即通常使用类到类关系。该框架负责创建查询并在数据库表中保存主键。

    如果您不使用任何框架,则取决于您将键转换为对象的位置以及如何创建模型,但是在模型中使用对象更自然。

    【讨论】:

    • 谢谢,感觉更自然。我会坚持模型中的对象。
    猜你喜欢
    • 2017-02-10
    • 2012-01-26
    • 2018-08-12
    • 1970-01-01
    • 1970-01-01
    • 2021-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多