Java 如何根据@manytomy关系的Id对集合进行排序?
我想在我正在开发的web应用程序中,根据@manytomy关系的Id对集合进行排序,但我不知道如何进行排序。此时,集合将按创建多个关系的顺序显示 课堂特长Java 如何根据@manytomy关系的Id对集合进行排序?,java,sorting,spring-data-jpa,set,many-to-many,Java,Sorting,Spring Data Jpa,Set,Many To Many,我想在我正在开发的web应用程序中,根据@manytomy关系的Id对集合进行排序,但我不知道如何进行排序。此时,集合将按创建多个关系的顺序显示 课堂特长 @Entity @Data @EqualsAndHashCode(callSuper = true) @NoArgsConstructor public class Especie extends Familia{ @GeneratedValue private Integer diasGerminacionDesde;
@Entity
@Data
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
public class Especie extends Familia{
@GeneratedValue
private Integer diasGerminacionDesde;
private Integer diasGerminacionHasta;
@ManyToOne
private Familia familia;
@JoinTable(
name = "especie_mesesSiembra"
,joinColumns=@JoinColumn(name="especie_id")
,inverseJoinColumns=@JoinColumn(name="mesSiembra_id")
)
@ManyToMany
private Set<MesSiembra> mesesSiembra;
}
public List<Especie> listarTodos() {
Sort orden = Sort.by(Sort.Direction.ASC, "nombre");
return repositorio.findAll(orden);
}
@实体
@资料
@EqualsAndHashCode(callSuper=true)
@诺尔格构装师
公共阶级的特殊性扩展了家庭{
@生成值
私有整数分离;
私有整数离散化;
@许多酮
私人家庭;
@可接合(
name=“特别的”
,joinColumns=@JoinColumn(name=“specie_id”)
,inverseJoinColumns=@JoinColumn(name=“mesienbra\u id”)
)
@许多
私人设置Mesessimbra;
}
类特殊控制器(控制器)
@GetMapping
公共列表listarTodos(){
return servicio.listarTodos();
}
班级特别服务(服务)
public List listarTodos(){
Sort orden=Sort.by(Sort.Direction.ASC,“nombre”);
返回回购findAll(orden);
}
您可以使用LinkedHashSet+JPA注释@OrderBy
@OrderBy
private Set<MesSiembra> mesesSiembra = new LinkedHashSet<>();
@OrderBy
私有集mesessimbra=新LinkedHashSet();
我已经替换了这个:
@ManyToMany
private Set<MesSiembra> mesesSiembra;
@manytomy
私人设置Mesessimbra;
为此:
@OrderBy("mesSiembra_id")
private Set<MesSiembra> mesesSiembra = new LinkedHashSet<>();
@OrderBy(“mesSiembra_id”)
私有集mesessimbra=新LinkedHashSet();
在Spring引导控制台中,我得到以下错误:
org.springframework.beans.factory.BeanCreationException:创建名为“SpecifierEPositorio”的bean时出错,该名称在ar.com.mibancosemillas.bancosemilasWeb.persistencia.SpecifierEPositorio中定义,该名称在JpaRepositoriesRegistrar.EnableJpaRepositories配置中声明@EnableJpaRepositories中定义:无法解析对bean的引用设置bean属性“mappingContext”时使用“jpaMappingContext”;嵌套异常为org.springframework.beans.factory.BeanCreationException:创建名为“jpaMappingContext”的bean时出错:调用init方法失败;嵌套异常为javax.persistence.PersistenceException:[PersistenceUnit:default]无法构建Hibernate SessionFactory;嵌套异常为org.hibernate.MappingException:无法确定列:[org.hibernate.mapping.Column(meses_siembra)]的表:familia中的java.util.Set的类型
如果我按以下方式放置代码,则会出现映射错误<代码>@ManyToMany@OrderBy(“mesSiembra_id”)私有集mesSiembra=new LinkedHashSet()代码>实际上你可以用@OrderBy替换@OrderBy(“mesienbra\u id”)。错误是什么?在这里,它只对@OrderBy起作用,没有在括号中添加任何内容。非常感谢。太好了,我更新了我的答案,你可以接受。谢谢
@OrderBy("mesSiembra_id")
private Set<MesSiembra> mesesSiembra = new LinkedHashSet<>();