我想选择Mangas,并按Date Realese列出Chapter。
但是该查询不能正确返回日期。
@Query("SELECT m FROM Mangas m JOIN m.chapter c where c.release= '2018-07-30' GROUP BY m.id ORDER BY c.manga.id")
public List<MangasEntity> buscarTodos();
我有域
Mangas > List<Chapter>
@Entity
public class Mangas {
//id, name, status, date
@OneToMany
private List<Chapters> Chapters;
//Getter and Setter
@Entity
public class Chapters {
//id, release, chapterNumber
@ManyToOne
@JsonIgnore
public Mangas manga;
我的查询未按版本正确返回章节列表。我想要发布2018-07-30
的章节。
[
{
"id": 12,
"name": "ONE PIECE",
"status": "COMPLETE",
"date": 2020,
"Chapters": [
{
"id": 22,
"release": "2018-07-30",
"chapterNumber": 777
},
{
"id": 23,
"release": "2018-07-30",
"chapterNumber": 253
},
{
"id": 26,
"release": "2018-07-29",
"chapterNumber": 777
}
]
}
]
答案 0 :(得分:0)
使用JOIN FETCH
解决。
@Query("SELECT DISTINCT m FROM Mangas m JOIN FETCH m.chapter c WHERE c.release = '2018-07-30' GROUP BY c.id")
通过发行版的List<Chapters>
返回漫画
[
{
"id": 12,
"name": "ONE PIECE",
"status": "COMPLETO",
"date": 2020,
"Chapters": [
{
"id": 22,
"release": "2018-07-30",
"chapterNumber": 777
},
{
"id": 23,
"release": "2018-07-30",
"chapterNumber": 253
}
]
}
]