2009-07-22 144 views
0

这是使用它的正确方法?因为它不起作用。我在RoleDAO中有同样的事情。会生成用户和角色的两个表,但将userid与roleid链接的表不是。休眠manytomany xdoclet

(关于语法的详细信息波纹管http://xdoclet.codehaus.org/HibernateTags#HibernateTags-hibernate.manytomany休眠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; 
} 

重点请
许多一对多列= “角色ID” 级=“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; 
} 

但仍然没有链接角色和用户的表。

回答

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

我第一次看到这种语法......看起来很奇怪。整个事情是否应该在javadoc评论中?

无论如何,如果你使用注解,要做到这一点的方法应该是:

[类用户]

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

[和类角色]

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

这是休眠我们正在谈论...我当然希望它适用于你= 8-)

+0

笑耶日Thnx :)恨传统支持。是的,整个事情是一个javadoc。 – b0x0rz 2009-07-22 11:16:45