【发布时间】:2021-08-28 05:00:14
【问题描述】:
我有这样的实体
public class SomeClass {
@NonNull
@NotNull
@Column(nullable = false)
@Convert(converter = SomeEnumConverter.class)
private SomeEnum fieldName;
}
我希望能够在 DB 中找到枚举名称与我传递的字符串/枚举匹配的行。该表只有 2 列。 UUID 是 PK,fieldName 是 varchar。我尝试了以下存储库方法。
public interface SomeClassRepository extends AnotherRepository<SomeClass, UUID> {
Optional<SomeClass> findByFieldName(SomeEnum param);
}
public interface SomeClassRepository extends AnotherRepository<SomeClass, UUID> {
Optional<SomeClass> findByFieldName(String param);
}
我的问题是,如果我尝试通过传递字符串(第二种情况)来查找,它会抱怨我传递的值不是预期的类型(SomeEnum)。
另一方面,如果我直接传递枚举,它会尝试查找我传递的具有 PK(UUID) = enum 的行,而不是在另一列(fieldName varchar)上搜索。我该如何克服这个问题?
【问题讨论】:
标签: spring-boot hibernate enums