0

我是 hibernate / jsf 的菜鸟,所以我想知道处理以下(相当标准)场景的标准方法是什么。

我有 2 节课:

public Class Appointment
   Client client;
   Date   date;

public Class Client
   String name;
   String address;

约会和客户之间存在多对一的关系(客户可以有很多约会)。但是,在创建约会时,我希望用户能够从下拉列表中选择客户端。在我看来,要做到这一点,我需要在约会和客户之间建立多对多的关系。这是标准方法吗?有替代品吗?

4

2 回答 2

0

我认为您必须只使用多对一映射,因为只有客户才能有很多约会,如果我得到您想要做的事情,约会是特定于唯一客户的。所以你必须使用一对多注释,并且不要忘记指定 mappedby 属性,以便你的关系可以从两侧起作用

祝你好运,对不起我的英语:s

于 2012-07-16T20:15:38.123 回答
0

极其常见的任务。不,你不想要多对多,这意味着同一个约会应该有多个客户。尝试类似:

豆:

private Long clientId;
private Date date;
private List<Client> clients;

public List<Client> getClients(){
    if(clients == null){
        clients = clientDAO.findAll(); // Lazy loading since JSF has a habit of calling the getter multiple times.
    }
    return clients;
}

// Getters and setters for client and date

public void saveAppointment(){
    applicationDAO.createAppointment(date, clientId);
}

xhtml:

<h:selectOneMenu value="#{bean.clientId}">
    <f:selectItems value="#{bean.clients}" var="client" itemLabel="#{client.name]" itemValue="#{client.id}"/>
</h:selectOneMenu>
于 2012-07-16T21:55:54.077 回答