首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >seam-gen不会为@ManyToMany成员生成EntityQuery接口

seam-gen不会为@ManyToMany成员生成EntityQuery接口
EN

Stack Overflow用户
提问于 2010-01-16 00:39:25
回答 1查看 735关注 0票数 3

在用户界面中公开的@org.jboss.seam.annotations.security.management.UserRoles返回一个简单的List方法。

seam-gen不会像上面提到的getUserRoles那样为@ManyToMany成员生成EntityQuery接口。

我们如何启用它,以便以分页的方式显示生成的角色。

编辑1:

代码语言:javascript
复制
This is the declaration in User.java

@ManyToMany(cascade = {CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH}, fetch = FetchType.LAZY)
@JoinTable(name = "user_role", joinColumns = @JoinColumn(name = "user_id), inverseJoinColumns = @JoinColumn(name = "role_id"))
@UserRoles
private List<Role> userRoles = new ArrayList<Role>(0);

这是Role.java中的声明

代码语言:javascript
复制
@Entity
@Table(name = "role", uniqueConstraints = @UniqueConstraint(columnNames = "name"))
public class Role {
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-01-28 00:26:12

正如Seam首席开发人员Pete Muir所说

Seam-gen不支持@ManyToMany关系

当使用@ManyToMany时,它不会生成用户界面。尽管Seam-gen让您的工作变得更轻松,但有时,您必须手动完成工作。

在继续之前

  1. Seam-gen使用Hibernate的reverse-engineering-tool
  2. If外键缺少表中的,Seam-gen不能假设一个表与另一个

相关

..。

所以我的建议是:

将您的@ManyToMany关系拆分为@OneToMany - @ManyToOne relationship

  • Set up逆向工程configuration

Seam-gen使用的逆向工程配置文件是生成的项目中的resources/seam-gen.reveng.xml。

也许你想看看

Controlling reverse engineering

Reverse engineering support in database and drivers

添加到原始答案的

Seam使用Ant生成你的应用。它的build.xml文件位于/seam-gen/build.xml

在那里,您将看到一个名为generate-ui的目标,如下所示

代码语言:javascript
复制
<target name="generate-ui"

它使用名为hbmtemplate的Ant工具。它是一个基于模板的引擎,其中可以由用户提供的模板或类控制。因此,如果你想要一个自定义的行为,你应该提供你自己的Freemarker模板。在/seam-gen/view目录中,可以看到很多模板文件(.flt扩展名)

致以敬意,

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2073199

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档