小编Tet*_*iuk的帖子

我可以将enum参数用于JpaRepository nativeQuery吗?

实体看起来像这样:

@Getter
@Setter
@Entity
public class Application {
@Id
private Long id;
@Enumerated(EnumType.STRING)
private ApplicationStatus status;
}
Run Code Online (Sandbox Code Playgroud)

代码以这种方式工作:

public interface ApplicationRepository extends JpaRepository<Application, Long> {
@Query("SELECT app FROM #{#entityName} AS app WHERE app.status LIKE :status")
List<Application> find(@Param("status") ApplicationStatus status);
Run Code Online (Sandbox Code Playgroud)

但是使用nativeQuery的相同代码段 - 不会:

@Query(value = "SELECT app.* FROM application AS app WHERE app.status LIKE :status", nativeQuery = true)
List<Application> findNative(@Param("status") ApplicationStatus status);
}
Run Code Online (Sandbox Code Playgroud)

而且我没有任何异常,只是空列表.

我怎样才能解决这个问题?是否有可能使用enumnativeQuery

PS我可以String转入方法而不是ApplicationStatus但也许有另一种选择?

java sql enums hibernate spring-data-jpa

18
推荐指数
4
解决办法
2529
查看次数

标签 统计

enums ×1

hibernate ×1

java ×1

spring-data-jpa ×1

sql ×1