我有班级产品(对应于PRODUCT表)
Class Product {
@Id
@Column(name = "PRODUCT_ID")
private Long id;
@Column(name = "NAME")
private String name;
//other attributes
}
我有另一个类Owner(对应于OWNER表)
Class Owner{
@Id
@Column(name = "OWNER_ID")
private Long id;
@Column(name = "NAME")
private String name;
}
我有一个名为PRODUCT_OWNER的中间表(一个产品可以有多个所有者)。
PRODUCT_OWNER表是这样的。
_______________________________________
| PRODUCT_ID | OWNER_ID | DISPLAY_ORDER |
|____________|__________|_______________|
在我的产品类中,我编写了一个连接语句,以使用中间的PRODUCT_OWNER表执行连接
@OneToMany(targetEntity = Owner.class, cascade = { CascadeType.ALL, CascadeType.MERGE }, fetch = FetchType.LAZY)
@JoinTable(name = "PRODUCT_OWNER",
joinColumns = { @JoinColumn(name = "PRODUCT_ID") },
inverseJoinColumns = { @JoinColumn(name = "OWNER_ID") })
private Set<Owner> productOwners = new HashSet<Owner>(0);
我的中间表中有一列是DISPLAY_ORDER。我想使用DISPLAY_ORDER对最终的Set产品所有者进行排序。在上述方法中这可能吗?请指教。
最佳答案
嗨,您可以尝试将其添加到您的JoinTable
@OneToMany(targetEntity = Owner.class, cascade = { CascadeType.ALL, CascadeType.MERGE }, fetch = FetchType.LAZY)
@JoinTable(name = "PRODUCT_OWNER",
joinColumns = { @JoinColumn(name = "PRODUCT_ID") },
inverseJoinColumns = { @JoinColumn(name = "OWNER_ID") })
@OrderColumn(name="DISPLAY_ORDER")
private List<Owner> productOwners = new HashSet<Owner>(0);