Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 包装类spring的int字段排序_Java_Spring_Hibernate_Jpa - Fatal编程技术网

Java 包装类spring的int字段排序

Java 包装类spring的int字段排序,java,spring,hibernate,jpa,Java,Spring,Hibernate,Jpa,我有一个导航类,我在其中动态创建导航,我有两个表文件夹(它是包含文件的目录)和内容(类似于将在公共站点上呈现内容的文件或页面)。我创建了一个导航类,其中有一个包装器类,用于将内容字段合并到文件夹中。我尝试过使用@OrderBy和@OrderColumn,但我知道它只适用于集合 List folder=folderRepository.findAllByNavDepthLessThanOrderByNavDepthAsc(3) 在这里,我使用navDepth对其进行排序(此列属于文件夹实体),我还

我有一个导航类,我在其中动态创建导航,我有两个表文件夹(它是包含文件的目录)和内容(类似于将在公共站点上呈现内容的文件或页面)。我创建了一个导航类,其中有一个包装器类,用于将内容字段合并到文件夹中。我尝试过使用@OrderBy和@OrderColumn,但我知道它只适用于集合

List folder=folderRepository.findAllByNavDepthLessThanOrderByNavDepthAsc(3)

在这里,我使用navDepth对其进行排序(此列属于文件夹实体),我还希望使用navOrder对其进行排序(此列属于内容实体)

@服务
公共类导航服务{
@限定符(“jdbcMySQL”)
私有JdbcTemplate JdbcTemplate;
私有FolderRepository FolderRepository;
私人FolderService FolderService;
@自动连线
公共导航服务(JdbcTemplate JdbcTemplate,
FolderRepository FolderRepository,
FolderService(文件夹服务){
this.jdbcTemplate=jdbcTemplate;
this.folderRepository=folderRepository;
this.folderService=folderService;
}
@事务性(传播=propagation.REQUIRED,只读=false)
公共地图导航项(){
//TODO://横切AOP弹簧
//待办事项:http://docs.spring.io/spring/docs/4.2.0.BUILD-SNAPSHOT/spring-framework-reference/htmlsingle/#aop
List folder=folderRepository.findAllByNavDepthLessThanOrderByNavDepthAsc(3);
//List folder=folderService.navigation();
Map navItems=new LinkedHashMap();
对于(int i=0;i
使用
比较器
并将其传递给
Collections.sort()
或类似方法

比较器可能如下所示:

class NavComparator implements Comparator<NavigationItem> {
  int specialValueNoChildren = -1; //assuming nav_order is always 0 or greater      

  int compare(NavigationItem o1, NavigationItem o2) {
    int max1 = getMaxNavOrder( o1 );
    int max2 = getMaxNavOrder( o2 );
    return Integer.compare( max1, max2 );
  }

  int getMaxNavOrder( NavigationItem ni ) {
    int max = specialValueNoChildren;
    for( Content child : ni.getChildren() ) {
      max = Math.max(max, child.getNavOrder());
    }

    return max;
  }
}
类NavComparator实现Comparator{
int specialValueNoChildren=-1;//假设nav_顺序始终为0或更大
int比较(NavigationItem o1,NavigationItem o2){
int max1=getMaxNavOrder(o1);
int max2=getMaxNav
class NavComparator implements Comparator<NavigationItem> {
  int specialValueNoChildren = -1; //assuming nav_order is always 0 or greater      

  int compare(NavigationItem o1, NavigationItem o2) {
    int max1 = getMaxNavOrder( o1 );
    int max2 = getMaxNavOrder( o2 );
    return Integer.compare( max1, max2 );
  }

  int getMaxNavOrder( NavigationItem ni ) {
    int max = specialValueNoChildren;
    for( Content child : ni.getChildren() ) {
      max = Math.max(max, child.getNavOrder());
    }

    return max;
  }
}