Mysql 在hibernate中如何设置各种表对象的状态

Mysql 在hibernate中如何设置各种表对象的状态,mysql,hibernate,hibernate-mapping,Mysql,Hibernate,Hibernate Mapping,我有两个目标,顾客和商店。我希望用户(从用户表中)能够将客户或商店指定为“首选”。然后我就可以看到一个用户列表,他们喜欢不同的商店或客户。使用hibernate映射可以实现这一点吗 如果每个用户都可以在商店的任一客户上设置preferred状态,那么表结构会是什么样子?因此,一个用户有许多首选商店,而商店是许多用户的首选商店。因此,这是用户和存储之间的多个关联 如图所示: 公共类用户{ @许多 private Set preferredStores=新哈希集(0); } 公共类商店{ //仅当您

我有两个目标,顾客和商店。我希望用户(从用户表中)能够将客户或商店指定为“首选”。然后我就可以看到一个用户列表,他们喜欢不同的商店或客户。使用hibernate映射可以实现这一点吗


如果每个用户都可以在商店的任一客户上设置preferred状态,那么表结构会是什么样子?

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

如图所示:

公共类用户{
@许多
private Set preferredStores=新哈希集(0);
}
公共类商店{
//仅当您希望关联是双向的时才需要:
@ManyToMany(mappedBy=“preferredStores”)
private Set preferringUsers=新哈希集(0);
}

我不明白你想要什么。状态只需要一个附加字段。对于商店来说,被优先选择意味着什么?对于客户呢?我想看看哪些客户和商店更适合用户。我认为这意味着一个新的表,其中包含商店或客户id以及用户id。然后,我将能够为一个用户查看所有准备好的商店/客户。客户呢?我会使用某种多态性来获得一组客户和商店吗?为什么要混合这两个实体。他们是不同的,没有共同点,至少我想是这样。因此,只需在用户和客户之间添加另一个多人关联。
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);
}