表_A
- ID
- 种类
表_B
- ID
通过使用这些关联的多对多表有一个 REF 表
TABLE_REF
- 援助
- 出价
我正在使用 B.getAs() 获取数据
我想获取 As OrderBy TABLE_A.SORT 字段。为此,我尝试添加 OrderBy,但是它无法访问与 B 邻居 A 相关的 ORDER 字段。
这就是为什么,我想如果我也可以将 SORT 字段加入到 REF 表中,我可以在 B 的关系图中使用 @OrderBy(clause="ORDER") 参数。
但是几个小时我找不到任何解决方案。
这是我用于映射的代码:
表_A:
@ManyToMany(fetch=FetchType.EAGER, targetEntity = Role.class, cascade={CascadeType.MERGE, CascadeType.PERSIST})
@Fetch(FetchMode.SUBSELECT)
@JoinTable(name = "NC_ADMIN_ROLE_PAGE_XREF", joinColumns =
@JoinColumn(name = "PAGE_ID", referencedColumnName = "ID"),
inverseJoinColumns = @JoinColumn(name = "ROLE_ID", referencedColumnName = "ID", nullable = true))
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE, region="ncAdminElements")
@BatchSize(size = 50)
private List<Role> allRoles = new ArrayList<Role>(10);
表_B:
@Column(name = "NAME")
private String name;
@ManyToMany(fetch=FetchType.EAGER, targetEntity = Page.class, cascade={CascadeType.MERGE, CascadeType.PERSIST})
@Fetch(FetchMode.SUBSELECT)
@JoinTable(name = "NC_ADMIN_ROLE_PAGE_XREF", joinColumns = @JoinColumn(name = "ROLE_ID", referencedColumnName = "ID"),
inverseJoinColumns = @JoinColumn(name = "PAGE_ID", referencedColumnName = "ID", nullable = true))
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE, region="ncAdminElements")
@BatchSize(size = 50)
private List<Page> allPages = new ArrayList<Page>(10);
我到底想要什么, TABLE_B.getAllPages() 由 TABLE_A.DISPLAY_ORDER 排序
任何关于在hibernate中为傻瓜映射关系的出色资料都适合我。