Сортировка объекта и его вложенной коллекции @OneToMany Spring Data JPA с PageableJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Сортировка объекта и его вложенной коллекции @OneToMany Spring Data JPA с Pageable

Сообщение Anonymous »

Есть ли способ отсортировать объект и его вложенную коллекцию в отношениях @OneToMany с интерфейсом Pageable?
У меня есть эти два объекта

Код: Выделить всё

@Entity
@Table(name = "course")
public class Course {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@Column(nullable = false)
private String name;

@OneToMany(cascade = CascadeType.ALL, mappedBy = "course")
private List reviews = new ArrayList();

....contructors, getters and setters
}

@Entity
@Table(name = "review")
public class Review {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

private String rating;

@ManyToOne
private Course course;

....contructors, getters and setters
}
Этот репозиторий

Код: Выделить всё

@Repository
public interface CourseRepository extends JpaRepository {
}
Этот сервис

Код: Выделить всё

@Service
public class CourseService {

@Autowired
CourseRepository courseRepository;

public Page getCourses(Pageable pageable) {
return courseRepository.findAll(pageable);
}

}
И этот контроллер

Код: Выделить всё

@RestController
@RequestMapping("/api")
public class CourseController {

@Autowired
CourseService courseService;

@RequestMapping(value="/courses", method= RequestMethod.GET)
public ResponseEntity
> readInteractionsPagedParam(Pageable pageable) {
Page pageCourse = courseService.getCourses(pageable);
... To DTO and return it
}
}
Я нашел другие похожие вопросы, но в ответах сортировка становится статической, как аннотация @OrderBy, но необходимо, чтобы сортировка была динамической, я имею в виду, что я должен упорядочить любое свойство в курс и обзор. Мне тоже нужно использовать Pagable.
Мне нужно что-то вроде этого, но я попробовал их и сортировал только сущность. Конечно, обзор сущности никогда не сортируется

Код: Выделить всё

.../api/courses?page=0&size=10&sort=name,asc&sort=reviews.rating,asc
.../api/courses?page=0&size=10&sort=name,asc&sort=reviews.rating,desc
.../api/courses?page=0&size=10&sort=name,desc&sort=reviews.rating,asc
.../api/courses?page=0&size=10&sort=name,desc&sort=reviews.rating,desc
Я новичок во всем этом: Java, Spring, JPA, Hibernate и т. д., и мне хотелось бы знать, есть ли способ добиться этого?

Подробнее здесь: https://stackoverflow.com/questions/711 ... h-pageable
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»