【发布时间】:2017-05-13 11:14:42
【问题描述】:
我的问题是如何通过正则表达式从数据库 (PostgreSQL) 中获取值,但不使用本机 SQL 查询。 我发现的唯一方法是使用 Hibernate Criteria API:
criteria.add(Restrictions.sqlRestriction("name ~ '^(?!" + filter + ")'"));
但这种方法也使用 SQL。 Spring 数据具有查询创建功能,但正则表达式搜索似乎仅适用于 MongoDb。
http://docs.spring.io/spring-data/jpa/docs/current/reference/html/#repository-query-keywords
我的目标不是依赖原生 sql 查询,而是使用对象,并使我的项目可移植到任何其他数据库。
【问题讨论】:
-
JPA 正在做 O-R 映射。您的查询最终必须转换为 SQL 才能在 DBMS 中执行。忘记 JPA,问问自己:如何在不使用 SQL 的情况下从 PostGres 检索数据并且是“可移植的”?我不相信你能做到。
-
很明显hibernate、spring data等最终都会使用sql查询,没有别的办法。我正在寻找这些函数,例如: someObject.addRegex(String regex).
-
someObject.addRegex(String regex)没有任何意义。您正在寻找的东西是不可归档的:没有 便携式您可以在没有 SQL 的情况下从不同的 DBMS 查询数据 -
所以?...您引用的内容与您的问题无关
标签: java regex postgresql hibernate spring-data