0

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

(有关以下语法的更多信息http://xdoclet.codehaus.org/HibernateTags#HibernateTags-hibernate.manytomany hibernate xdoclet tags)

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

请关注
多对多列="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 回答