【发布时间】:2018-10-25 14:59:24
【问题描述】:
正如 Tobias Liefke 建议的 here,我已经实现了一个 AttributeConverter 来将列表值存储到由逗号分隔的单个字符串列中。
转换器类:
public class ListNumbersConverter implements AttributeConverter<List<Long>, String>
实体类中的字段:
@Column(name = "user_ids", nullable = false)
@Convert(converter = ListNumbersConverter.class)
private List<Long> userIds;
它工作正常,但我无法查询特定列表项的记录。我尝试在 JPQL 查询中使用IN 运算符,如下所示:
? in userIds
如果输入参数是数据库值中的第一个元素,我只会得到一个结果。例如:DB 值为“1,2,3”。如果上述查询的输入参数值为 1,我可以检索此记录,但如果值为 2 或 3,则无法检索此记录。如何编写查询以检索包含特定项目的所有记录?
我的数据库是 MySQL。
【问题讨论】:
标签: java mysql hibernate jpa-2.1