Java 在JPA中,我可以将@OrderColumn创建的字段访问到收集的实体中吗?
我的示例代码:Java 在JPA中,我可以将@OrderColumn创建的字段访问到收集的实体中吗?,java,jpa,eclipselink,Java,Jpa,Eclipselink,我的示例代码: public class A { @OneToMany @OrderColumn(name = "ORDER") private List<B> bList; ... } public class B { @Column(name = "ORDER") private Integer order; // I need this field because I want // to u
public class A { @OneToMany @OrderColumn(name = "ORDER") private List<B> bList; ... } public class B { @Column(name = "ORDER") private Integer order; // I need this field because I want // to use the ordering field in my query. ... } 公共A类{ @独身癖 @OrderColumn(name=“ORDER”) 私人名单; ... } 公共B级{ @列(name=“ORDER”) private Integer order;//我需要这个字段,因为我需要 //在我的查询中使用排序字段。 ... } 使用这段代码,EclipseLink尝试创建“ORDER”列2次,抛出异常,而不创建B表
谢谢。请在EclipseLink上记录此问题的错误 您不应该仅仅为了查询而需要该列,您可以使用JPQL索引(bList)来查询order列
在EclipseLink中,您还可以使用描述符自定义项为任何列定义查询键,以允许对其进行查询。使用@OrderBy而不是@OrderColumn。查看参考资料
为什么不简单地定义您希望如何在查询中使用排序:从b中选择b,其中。。。照詹姆斯说的做。。。使用“按索引排序(列表)”我尝试过,但不使用EclipseLinkWhy如果他想要索引列表,而不是有序列表,他会这样做吗?它们是不同的概念,一个保留元素添加到列表中的顺序,另一个对mok施加一些基于查询的顺序,但不可能在“orderby”查询部分使用它