Java Spring Boot 2@OrderBy被忽略
我有两个实体:Java Spring Boot 2@OrderBy被忽略,java,spring,hibernate,spring-boot,Java,Spring,Hibernate,Spring Boot,我有两个实体: public class Field { private String inputType; @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "field") @OrderBy("order_by") private List<SelectItem> selectItems; } publ
public class Field {
private String inputType;
@OneToMany(cascade = CascadeType.ALL,
fetch = FetchType.LAZY,
mappedBy = "field")
@OrderBy("order_by")
private List<SelectItem> selectItems;
}
public class SelectItem {
@ManyToOne(fetch = FetchType.LAZY, optional = false)
@JoinColumn(name = "field_id", nullable = false)
@OnDelete(action = OnDeleteAction.CASCADE)
private Field field;
private int orderBy;
}
日志中没有后续的select语句可以提取嵌套的SelectItem
实例,但是当我取回对象时,它们就在那里了
因此,不知何故,它们被选中了,但hibernate似乎没有这样做,选择它们的任何东西都忽略了@OrderBy
注释
有人能解释一下发生了什么事吗 缺少特定的
订单类型ASC或DESC
,直接通过字段名调用
@OrderBy("orderBy ASC")
那不行。将忽略整个批注。我只是尝试了你的建议(没有区别),然后尝试了@OrderBy(“orderxxby ASC”),它甚至不是对象的属性。没有变化,就没有错误;该对象与所有子对象一起返回,但它们的顺序不正确。那么您可以使用
@OrderColumn(name=“order\u by”)
@ukalumniTried,并至少给出了一个有趣的异常:由:org.hibernate.DuplicateMappingException引起:表[select\u items]包含物理列名[order\u by]由多个物理列名引用:[order\u by],[orderBy]我通过在SelectItem.java中的orderBy属性上方添加@column(name=“order\u by”)解决了这个问题,但最终结果是相同的:代码可以工作,但SelectItems不按orderBy排序,select语句永远不会显示在日志中。
@OrderBy("orderBy ASC")