我有3张桌子:
发票(id,userReadeableNum,...)
订单(id,userReadeableNum,...)
InvoiceOrderRel(id,invoceId,orderId,insertDate,...)
我想在Invoice Class上使用Order类的userReadableNum创建一个List属性。
这样的事情:
@Entity
@Table(name="INVOICE")
@Immutable
public class Invoice implements Serializable{
@Id
@Column(name="INV_ID")
private long invId;
//many attributes
/*I know that this annotation does not exists, i want to know if there's something similar*/
@ByQuery("select o.userReadableNum from Order o join o.invoiceOrderList iol where iol.order.invId = :invId")
private List<String> orderNums;
//etc...
答案 0 :(得分:0)
我从来没有听说过类似的东西,但你可以创建一个@ManyToMany关系来解决这个问题。 JPA和hibernate将数据库表视为实体,因此他们期望PK和FK。
使用@ManyToMany关系时,orderNums
属性需要为List<Order>
而不是字符串列表。 InvoiceOrderRel
将是您的联接表。
以下是有关@ManyToMany映射的一些信息。