当前位置: 首页 > 知识库问答 >
问题:

使用Enum列为Entity创建搜索规范

李康安
2023-03-14

我有一个带有枚举列的实体:

@Enumerated(EnumType.STRING)
@Column(name = "status", length = 20)
private OnboardingTaskStatus status;

其中枚举声明如下所示:

public enum OnboardingTaskStatus {
    NEW,
    IN_PROGRESS,
    DISABLED;
}

我尝试实施搜索规范:

Specification<OnboardingTasks> spec = (root, query, cb) -> {
    List<Predicate> predicates = new ArrayList<>();
    if (params.getTitle() != null) {
        predicates.add(cb.like(cb.lower(root.get("title")), "%" + params.getTitle().toLowerCase() + "%"));
    }
    if (params.getStatus() != null) {
        predicates.add(cb.equal(root.get("status"), params.getStatus()));
    }
    return cb.and(predicates.toArray(new Predicate[predicates.size()]));
};
return onboardingTasksService
         .findAll(spec, pageable)
         .map(onboardingMapper::taskToTaskDTO);

我得到一个错误:

登上塔斯克斯塔斯。2769df0841;嵌套异常为java。lang.IllegalArgumentException:BoardingTaskStatus上没有枚举常量。2769df0841]具有根本原因java。lang.IllegalArgumentException:BoardingTaskStatus上没有枚举常量。2769df0841

我应该使用像这样的转换器吗

<代码>@转换(converter=OnboardingTaskStatus.class)

如下所述:在JPA 2.1中使用@Convert正确映射枚举

有没有更好的方法来实现这一点?

共有1个答案

邢杰
2023-03-14

您没有显示什么参数。getStatus()是,所以很难帮助您。从异常所说的内容可以看出,这返回的对象不是enum类型的OnboardingTaskStatus。

 类似资料:
  • 我有一个SearchActivity,它来自具有以下代码的搜索菜单项: 在上,搜索活动声明如下: 在搜索活动的< code>onCreate()和< code>onNewIntent()方法中,我处理传入的意图,但是如果我记录查询,无论我更改查询多少次,它只显示启动搜索活动的第一个查询。 我这里有什么遗漏吗?

  • 当我试图在我的用户之间创建reation时,我遇到了一个问题。一个用户可以是另一个用户的营养师,所以我有这样的结构: 在我的DbContext类中,我还定义了关系: 最后,我的迁移代码看起来是这样的: 为什么我有这些ApplicationUserId和ApplicationUserId1列?怎么解决? 你觉得这样定义那些关系怎么样?老实说,我需要用户只有一个营养师,但我没有找到实现它的方法。

  • 我想在Spring-Boot后端创建一个多字段搜索。如何使用实现这一点? 环境 前端的UI是Jquery DataTable。每列允许应用单个字符串搜索项。跨多个列的搜索词由联接。 看来QueryDSL是解决这个问题的更简单、更好的方法。我在用Gradle。我需要改变我的构造吗?

  • 问题内容: 我想为查询建立索引 如果我有一个像下面这样的表 我想创建一个索引,以便能够高效地执行以下操作: 还有这个: 我也希望该表能够实时更新。 如何创建这样的索引?(我有一种需要索引的感觉,但是我对需要给它提供什么选择感到困惑) 我正在使用Oracle 10g。 问题答案: 我会用这个(将您的最小和最大长度设置为适当值) 这些参数在此处解释《Oracle文本参考》

  • 我开始了Django-haystack和弹性搜索的实验。 使用: models.py 我想为上述模型创建一个搜索索引: 是否可以使用多个模型创建搜索索引。或者我必须为多个模型创建多个搜索索引。 注:两种型号完全独立。

  • 好的,所以我目前正在尝试创建一个二叉搜索树,每个节点都包含对某个对象的引用,以及对其左侧子项的引用和对右子项的引用(总共3个变量)。左子项必须始终小于其父项,而右子项必须始终大于其父项。我必须创建两个方法:1种方法( contains()) 来检查元素是否在树中,以及一个add()方法将元素添加到树中的适当位置。 以下是BinarySearchTree类: 下面是TreeNode类(包含在Bina