Tag: 条件

使用hibernate标准,有没有办法逃避特殊字符?

对于这个问题,我们希望避免编写特殊查询,因为查询必须在多个数据库中不同。 仅使用hibernate标准,我们希望能够转义特殊字符。 这种情况是需要能够转义特殊字符的原因: 假设我们在数据库中有表’foo’。 表’foo’只包含1个字段,称为’name’。 “名称”字段可以包含在数据库中可能被视为特殊的字符。 这种名称的两个例子是’name_1’和’name%1’。 “_”和“%”都是特殊字符,至少在Oracle中是这样。 如果用户想要在数据库中输入这些示例之后搜索其中一个示例,则可能会出现问题。 criterion = Restrictions.ilike(“name”, searchValue, MatchMode.ANYWHERE); return findByCriteria(null, criterion); 在此代码中,“searchValue”是用户为应用程序提供的用于搜索的值。 如果用户想要搜索’%’,则用户将返回数据库中的每个’foo’条目。 这是因为’%’字符表示字符串匹配的“任意数量的字符”通配符,而hibernate生成的SQL代码将如下所示: select * from foo where name like ‘%’ 有没有办法告诉hibernate逃避某些字符,或创建一个非数据库类型特定的解决方法?

Hibernate Criteria和多个join

有可能用Hibernate标准吗? select A.something, B.something, C.something, D.something from A JOIN B on A.id = B.id_fk JOIN C ON B.id = C.id_fk JOIN D ON C.id = D.id_fk;