Как получить сущность в проекции - PullRequest
0 голосов
/ 17 сентября 2018

хава сущность:

@Entity
@Table(name = "story", schema = "")
@Data
public class Story implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "sID", unique = true, nullable = false)
    private Long sID;
    @Column(name = "vnName", nullable = false)
    private String vnName;
    @Temporal(TemporalType.TIMESTAMP)
    @DateTimeFormat(pattern = "dd-MM-yyyy HH:mm:ss")
    @Column(name = "sUpdate", length = 19)
    private Date sUpdate;
}

и интерфейс проекции:

public interface NewStory {
    Story getStory();    
    Long getCnt();      
}

и хранилище:

public interface StoryRepository extends CrudRepository<Story, Long> {

    @Query(value = "SELECT s.* , COUNT(u.chID) as Cnt"
            + " FROM Story s" 
            + " LEFT JOIN Chapter c ON s.sID = c.sID"
            + " LEFT JOIN _ufavorites u ON c.chID = u.chID"
            + " GROUP BY s.sID" + " ORDER BY COUNT(u.chID) DESC", 
            nativeQuery = true)
    public List<NewStory> getStoryNew();

}

Результат:

[
    {
        "story": null,
        "cnt": 7
    },...
]

Или это можно сделать по-другому?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...