0

これは正しい使用方法ですか?うまくいかないからです。RoleDAOにも同じものがあります。ユーザーとロールの 2 つのテーブルが生成されますが、ユーザー ID をロール ID にリンクするテーブルは生成されません。

(構文の詳細については、http ://xdoclet.codehaus.org/HibernateTags#HibernateTags-hibernate.manytomany hibernate xdoclet タグを参照してください)

/**
 * @hibernate.id generator-class="native"
 * @hibernate.generator-param name="sequence" value="seq_userid"
 * @hibernate.many-to-many column="roleID"
 *                         class="domain.company.product.service.cm.RoleDAO.java"
 */
public Integer getUserID() {
    return userID;
}

多対多 column="roleID" class="domain.company.product.service.cm.RoleDAO.java" に注目してください

編集:

わかった。現在使用しています:

private Set<RoleDAO> roles = new HashSet<RoleDAO>();

/**
 * @hibernate.many-to-many column="roleID"
 *                         class="domain.company.producut.service.cm.RoleDAO.java"
 */
public Set<RoleDAO> getRoles() {
    return roles;
}

ロールとユーザーをリンクするテーブルがまだ表示されていません。

4

2 に答える 2

0

この種の構文は初めて見ました...奇妙に見えます。全体が javadoc コメント内にあるはずですか?

とにかく、注釈を使用する場合、これを行う方法は次のとおりです。

[クラス内ユーザー]

@ManyToMany
@JoinTable(name="USER_ROLE",
        joinColumns=@JoinColumn(name="USER_ID", referencedColumnName="USER_ID"),
        inverseJoinColumns=@JoinColumn(name="ROLE_ID")
)
public Set<Role> getRoles() { return roles; }

[そしてクラスの役割]

@ManyToMany(mappedBy="roles")
public Set<User> getUsers() { return users; }

これは、私たちが話している Hibernate です...うまくいくことを願っています =8-)

于 2009-07-22T11:15:53.200 に答える
0

これが私が最終的にそれを行うことができた方法です。

(UserDAOより)

/**
 * @hibernate.bag table="user_roles" cascade="save-update" lazy="true"
 * @hibernate.collection-key column="roleID"
 * @hibernate.collection-many-to-many 
 *                                    class="domain.company.product.service.cm.RoleDAO"
 *                                    column="roleID"
 */
public List<RoleDAO> getRoles() {
return roles;
}
于 2009-07-23T07:17:06.303 に答える