我有以下在 mysql 中完美运行的查询。
SELECT * FROM Orders as o, Products as p where o.productinfo RLIKE p.code;
在这里,我将两个表 Orders 和 Products 与 RLIKE 连接起来。
我正在尝试在 Hibernate 中实现相同的功能。
Query query = session.createQuery("FROM Orders as o, Products as p where o.productinfo RLIKE p.code");
List<Object[]> results = query.getResultList();
当我使用 RLIKE 时,在运行时会抛出以下错误。
{"errormessage":"org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: RLIKE
我尝试使用 LIKE 查询来实现相同的功能,并将其与 '%p.code%' 匹配。
Query query = session.createQuery("FROM Orders as o, Products as p where o.productinfo LIKE '%p.code%'");
但它与字符串“p.code”而不是值匹配。
HQL 中的 RLIKE 等价物是什么?在 HQL 中是否有不同的方法可以使用 LIKE 连接两个表?
谢谢。
@YCF_L 回答:对于任何试图在 Hibernate(mysql)中使用 like 运算符连接两个表的人都可以通过以下方式进行操作。
SELECT * FROM Orders as o, Products as p where o.productinfo LIKE CONCAT('%',p.code,'%');