2009-07-22 7 views
0

est-ce la bonne façon de l'utiliser? parce que ça ne marche pas. J'ai la même chose dans RoleDAO. les deux tables pour les utilisateurs et les rôles sont générées, mais la table qui lie userid à roleid ne l'est pas.hibernate manytomany xdoclet

(plus d'informations sur la syntaxe ci-dessous http://xdoclet.codehaus.org/HibernateTags#HibernateTags-hibernate.manytomany mise en veille prolongée balises 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; 
} 

accent sur
s'il vous plaît many-to-many colonne = classe "RoleId" = "domain.company.product.service. cm.RoleDAO.java »

modifier:

ok. maintenant en utilisant:

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

mais toujours pas la table qui relie les rôles et les utilisateurs.

Répondre

0

Voici comment j'ai finalement réussi à le faire.

(de 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; 
} 
0

La première fois que je vois ce genre de syntaxe ... ça a l'air bizarre. Est-ce que le tout est censé être dans le commentaire de javadoc?

Quoi qu'il en soit, si vous utilisez les annotations, la façon de le faire devrait être:

[en classe User]

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

[et dans le rôle de la classe]

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

C'est Hibernate dont nous parlons ... J'espère bien que cela fonctionne pour vous = 8-)

+0

lol ouais :) thnx soutien héritage de haine. et ouais toute cette affaire est un javadoc. – b0x0rz

+0

l'a essayé. toujours pas (voir) la table qui les lie ... ?? – b0x0rz