0

私は休止状態/jsfの初心者なので、次の(かなり標準的な)シナリオに対処する標準的な方法は何だろうと思っています。

私は2つのクラスを持っています:

public Class Appointment
   Client client;
   Date   date;

public Class Client
   String name;
   String address;

予約とクライアントの間には多対 1 の関係があります (クライアントは多数の予約を持つことができます)。ただし、予定を作成するときに、ユーザーがドロップダウン リストからクライアントを選択できるようにしたいと考えています。そのためには、予定とクライアントの間に多対多の関係が必要であるように思えます。それが標準的な方法ですか?代替手段はありますか?

4

2 に答える 2

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 に答える
0

クライアントだけが多くの予定を持つことができるため、多対1のマッピングのみを使用する必要があると思います。あなたがやりたいことがわかった場合、予定は一意のクライアントに固有です。そのため、1 対多のアノテーションを使用する必要があります。リレーションが両側から機能できるように、mappedby プロパティを指定することを忘れないでください。

頑張って、私の英語でごめんなさい:s

于 2012-07-16T20:15:38.123 に答える