我想使用Spring JPA的投影从查询结果中筛选出不必要的数据。但是,我有多个预测需要在相同的接口方法上使用。Spring JPA:在同一查询接口上使用多个投影
问题是,我试图用不同的返回对象从同一个方法中查询数据,但java不允许这样做。
该查询是由JPA根据方法名称自动生成的,因此我无法更改方法名称。
是否有替代方案,比创建一个新的接口等,因为我认为这是一个麻烦和不必要的
这里是一个示例代码,我试图做的。
Auto-Generated Query
public interface UserRepository extends CrudRepository<UserAccount, Long> {
AuthenticateProjection getByUsername(String username);
UserDetailsProjection getByUsername(String username);
}
Projections
public interface AuthenticateProjection {
@Value("#{target.username}")
String getUsername();
@Value("#{target.credentail.token}")
String getHashPassword();
}
public interface UserDetailsProjection {
@Value("#{target.username}")
String getUsername();
@Value("#{target.firstname}")
String getFirstName();
@Value("#{target.lastname}")
String getLastName();
}
调用查询方法 - 这是从控制器返回,或内部使用? – chrylis
@chrylis它将返回到控制器 – XPLOT1ON