【问题标题】:In hibernate how to set status for various table objects在休眠中如何为各种表对象设置状态
【发布时间】:2013-02-28 21:27:39
【问题描述】:

我有两个对象,Customer 和 Store。我希望用户(来自用户表)能够将客户或商店指定为“首选”。然后,我将能够看到喜欢不同商店或客户的用户列表。这可以通过休眠映射实现吗?

如果可以为每个用户的商店的任一客户设置首选状态,表结构会是什么样子?

【问题讨论】:

  • 我不明白你想要什么。状态只需要一个附加字段。首选商店对商店意味着什么?而对于客户呢?
  • 我想看看哪些客户和商店更受用户欢迎。我认为这意味着一个带有商店或客户 ID 以及用户 ID 的新表。然后,我将能够查看为用户准备的所有商店/客户。

标签: mysql hibernate hibernate-mapping


【解决方案1】:

因此,一个用户有许多首选商店,而一个商店是许多用户的首选商店。因此,这是用户和商店之间的多对多关联。

按照in the documentation的说明进行映射:

public class User {
    @ManyToMany
    private Set<Store> preferredStores  = new HashSet<Store>(0);
}

public class Store {
    // necessary only if you want the association to be bidirectional:
    @ManyToMany(mappedBy = "preferredStores")
    private Set<User> preferringUsers = new HashSet<User>(0);
}

【讨论】:

  • 客户呢?我会使用某种多态性来获取一组客户和商店吗?
  • 你为什么要混合这两个实体。它们是不同的,没有任何共同点,至少我猜是这样。因此,只需在 User 和 Customer 之间添加另一个 ManyToMany 关联。
猜你喜欢
  • 2015-10-19
  • 2016-12-03
  • 2023-03-23
  • 2016-04-29
  • 2020-09-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-28
  • 1970-01-01
相关资源
最近更新 更多