Java JPA/Hibernate:是否可以将列表属性关联到jpql查询?
我有三张桌子: 发票id,userReadeableNum。。。 订单id,userReadeableNum。。。 InvoiceOrderRel id、invoceId、orderId、insertDate等 我想用Order类的userReadableNum在Invoice类上创建一个List属性 大概是这样的: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
我从来没有听说过这样的事情,但是你可以创建一个@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...