package com.huixinpn.dionysus.repository.psychtest;
import java.util.List;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.Repository;
import org.springframework.data.rest.core.annotation.RepositoryRestResource;
import com.huixinpn.dionysus.domain.psychtest.PsychTestResult;
@RepositoryRestResource(path = "psychtestresults",
collectionResourceRel = "psychtestresults",
itemResourceRel = "psychtestresult")
//excerptProjection = PscyTestResultExcerpt.class )
public interface PsychTestResultRepository
extends Repository<PsychTestResult, Long> {
// 当前用户可以查看自己的测试结果,或者管理员可以查看所有的测试结果
@Query("select o from PsychTestResult o where o.id = ?1 and (o.createdBy.id = ?#{principal.id} or 1=?#{hasRole('ROLE_ADMIN') ? 1 : 0}))")
PsychTestResult findOne(Long id);
@Query("select o from PsychTestResult o where (o.createdBy.id = ?#{principal.id} or 1=?#{hasRole('ROLE_ADMIN') ? 1 : 0}) order by o.lastModifiedDate desc")
List<PsychTestResult> findAll();
@Query("select o from PsychTestResult o where (o.createdBy.id = ?#{principal.id} or 1=?#{hasRole('ROLE_ADMIN') ? 1 : 0}) order by o.lastModifiedDate desc")
Page<PsychTestResult> findAllResults(Pageable pageable);
PsychTestResult save(PsychTestResult entity);
}