【发布时间】:2012-02-26 00:32:36
【问题描述】:
想问如何对Integer id列过滤结果添加限制
我需要类似的东西
Restriction.like("id", myFilterValue) // id 是整数主键
【问题讨论】:
-
这是一个很基础的问题。阅读休眠文档docs.jboss.org/hibernate/orm/3.3/reference/en/html/…
想问如何对Integer id列过滤结果添加限制
我需要类似的东西
Restriction.like("id", myFilterValue) // id 是整数主键
【问题讨论】:
如果你想在 Hibernate 中通过它的主键来检索一个对象,你可以使用Session.get():
Foo foo = session.get(Foo.class, id);
否则,如果您想使用 Criteria 添加相等限制:
Criteria crit = session.createCriteria(Foo.class);
crit.add(Restrictions.eq("id", id);
List foos = crit.list();
我想如果你真的想要找到数字列的十进制数字包含某个数字子串的任何行,那么你必须将该列转换为VARCHAR (其语法可能因数据库而异,并且您没有指定您使用的是哪一个),然后您就可以使用WHERE CAST(id AS VARCHAR) LIKE '%12%' 之类的东西。但是,如果您这样做,您可能需要重新考虑您要在更高级别上实现的目标,因为这会让我相信您的系统的基本设计可能存在问题。
【讨论】:
id 在号码中的任何位置包含数字(例如)“12”吗?在大多数数据库中,您无法使用整数列来做到这一点(LIKE 仅适用于字符串),如果您确实想要这样做,听起来您的架构可能存在更基本的设计问题