Java QueryException:未设置所有命名参数:[已停用]
我试图在jqp查询中使用enum,但出现错误Java QueryException:未设置所有命名参数:[已停用],java,hibernate,jpa,spring-data,Java,Hibernate,Jpa,Spring Data,我试图在jqp查询中使用enum,但出现错误 org.hibernate.QueryException: Not all named parameters have been set: [Deactivated] 这是我的密码 import com.uzzz.enums.DStateEnum; @Enumerated(EnumType.STRING) @Query("SELECT dlCode FROM GDETable WHERE d.Id = ?1 AND d.dState.state &
org.hibernate.QueryException: Not all named parameters have been set: [Deactivated]
这是我的密码
import com.uzzz.enums.DStateEnum;
@Enumerated(EnumType.STRING)
@Query("SELECT dlCode FROM GDETable WHERE d.Id = ?1 AND d.dState.state <> :Deactivated")
List<String> findAllDsCodeExcludingDeactivatedById(Integer Id);
您的查询中有一个名为:Deactivated
的未给定值
我对@Query注释不太熟悉,但在我看来,您在方法中只提供了“id”值,而没有提供“state”值。您需要传入“:Deactivated”命名参数或用固定值替换它。查询方法定义存在多个问题:
?1
和?2
,或者为?1
命名:Description
的方法中,Spring数据将无法将其绑定到查询(它应该如何做?)那么,您在代码中的什么地方填充参数
Deactivated
?它来自import com.uzzz.enums.DStateEnumreally?怎样?从未听说过此类import
operator功能。为dstatenum添加了代码
public enum DStateEnum {
Cancelled("Cancelled"),
Active("Active"),
Paused("Paused"),
Deactivated("Deactivated");
private DStateEnum(final String name){
this.name = name;
}
private String name;
public String getName() {
return name;
}
@Override
public String toString() {
return name;
}
public static DStateEnum fromString(String text) {
if (text != null) {
for (DStateEnum b : DStateEnum.values()) {
if (text.equalsIgnoreCase(b.getName())) {
return b;
}
}
}
return null;
}
}