Spring JPA - “java.lang.IllegalArgumentException: Projection type 必须是一个接口!”(使用本机查询)
我试图从oracle数据库中检索时间戳日期,但代码正在抛出:
java.lang.IllegalArgumentException:投影类型必须是一个接口!
我正在尝试使用本机查询,因为原始查询使用Spring JPA方法或JPQL的方式很复杂。
我的代码类似于下面的代码(抱歉,由于公司政策,无法粘贴原始代码)。
实体:
@Getter
@Setter
@Entity(name = "USER")
public class User {
@Column(name = "USER_ID")
private Long userId;
@Column(name = "USER_NAME")
private String userName;
@Column(name = "CREATED_DATE")
private ZonedDateTime createdDate;
}
投影:
public interface UserProjection {
String getUserName();
ZonedDateTime getCreatedDate();
}
存储 库:
@Repository
public interface UserRepository extends CrudRepository<User, Long> {
@Query(
value = " select userName as userName," +
" createdDate as createdDate" +
" from user as u " +
" where u.userName = :name",
nativeQuery = true
)
Optional<UserProjection> findUserByName(@Param("name") String name);
}
我使用的是Spring Boot 2.1.3和Hibernate 5.3.7。