搜索属性字符串类型,一些带有 hql 的字符用于休眠



我不知道我能不能做到这一点。我有一个属性,我在休眠中存储了一个字符串:String tags此属性可以值例如:tags="car,airplane,bycicle"

现在我想获取其标签值包含子字符串"car"的实例:

Object A --> tags="car,airplane"
Object B --> tags="bycicle"
Object C --> tags="bycicle,car"

返回 A 和 C

有什么办法可以做到这一点吗?

我尝试按标签对对象进行分类,然后恢复包含一个或多个特定标签的对象。

这个想法是当你去问一个问题时,做同样的 Stackoverflow 对标签字段所做的。

这正是数据库规范化很重要的原因。不应将多个值存储在单个列中。您应该有一个标记实体,并且您的实体和标记实体之间具有多对多关联。如果你有这个,你可以简单地做

select p from Post p inner join p.tags tag where tag.name = 'car'

使用您当前的设计,最好的选择是

select p from Post p where p.tags like '%car%'

但这会慢得多,并且会返回带有标签的帖子 小心真空.

最新更新