Java JPA/Hibernate:是否可以将列表属性关联到jpql查询?

Java JPA/Hibernate:是否可以将列表属性关联到jpql查询?,java,hibernate,jpa,Java,Hibernate,Jpa,我有三张桌子: 发票id,userReadeableNum。。。 订单id,userReadeableNum。。。 InvoiceOrderRel id、invoceId、orderId、insertDate等 我想用Order类的userReadableNum在Invoice类上创建一个List属性 大概是这样的: 我从来没有听说过这样的事情,但是你可以创建一个@manytomy关系来解决这个问题。JPA和hibernate将数据库表视为实体,因此它们期望PK和FKs 对于@ManyToMan

我有三张桌子: 发票id,userReadeableNum。。。 订单id,userReadeableNum。。。 InvoiceOrderRel id、invoceId、orderId、insertDate等

我想用Order类的userReadableNum在Invoice类上创建一个List属性

大概是这样的:


我从来没有听说过这样的事情,但是你可以创建一个@manytomy关系来解决这个问题。JPA和hibernate将数据库表视为实体,因此它们期望PK和FKs

对于@ManyToMany关系,orderNums属性需要是列表,而不是字符串列表。InvoiceOrderRel将是您的联接表


这里有一些关于映射的信息。

我在这里考虑性能,但如果没有解决方案,我可能会使用您的建议。
@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...