2009-07-22 7 views
0

これは正しい使い方ですか?それは動作しないためです。私はRoleDAOで同じことをしています。ユーザーとロールの2つのテーブルが生成されますが、useridとroleidをリンクするテーブルは生成されません。hibernate manytomany xdoclet

= "roleID" クラス= "domain.company.product.service
多対多の列に

/** 
* @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; 
} 

フォーカスしてください(http://xdoclet.codehaus.org/HibernateTags#HibernateTags-hibernate.manytomany怒鳴る構文の詳細情報のXDocletタグを休止状態)。 cm.RoleDAO.java」

編集:

OK。今使用して:

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; 
} 

それでもロールとユーザーをリンクテーブルをseingありません。

答えて

0

ここで私は最終的にそれをやっています。

/** 
* @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; 
} 
0

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

あなたは注釈を使用している場合とにかく、これを行う方法は次のようになります。

[クラスのユーザーに]

@ManyToMany 
@JoinTable(name="USER_ROLE", 
     [email protected](name="USER_ID", referencedColumnName="USER_ID"), 
     [email protected]mn(name="ROLE_ID") 
) 
public Set<Role> getRoles() { return roles; } 

[クラスの役割に]

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

これは、私たちが話している休止状態...確かにそれがあなたのために働くことを願っています= 8-)

+0

(UserDAOから)笑ええのthnx :)嫌いレガシーサポート。そして、すべてがjavadocであることをええ。それを試したのは – b0x0rz

+0

です。それらをリンクするテーブルをまだ(見て)取得していない...? – b0x0rz

関連する問題