Hibernate 查询删除前导零

标签 hibernate

我想做:

 select * from accounts where account_number = '234567'

用户可以在 GUI 上输入帐号 = '234567',但数据库列的值可能为 '0000234567' 。但它仍然应该匹配。

这个 SQL 查询可以工作吗?

select * from accounts a where 
(:accountNumber LIKE (TRIM(REPLACE((a.account_number), '0', '%'))))

最佳答案

您可以使用@Formula注释并引入一个新字段-trimmedAccount

@Formula("TRIM(REPLACE((account_number), '0', '%')")
private Integer trimmedAccount;

然后只需在 HQL 中使用 trimmedAccount

关于Hibernate 查询删除前导零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34817530/

相关文章:

java - Jersey + hibernate = NoSuchMethodError : org. objectweb.asm.ClassReader.accept(Lorg/objectweb/asm/ClassVisitor

hibernate - 从Grails应用程序执行的MySQL存储过程调用执行起来非常缓慢

java - EntityManager.remove 和 EntityManager.persist 上的 JPA 重复条目错误

java - 使用数据进行单元测试的最佳方法

java - 是否可以让 hibernate 生成用于创建表索引的 SQL 代码?

java - 使用 Spring 3+Hibernate JPA 时发现 JPA 注释类

java - 带复合键的 Hibernate 单向 OneToMany

java - 在 hibernate 中从 session.createQuery 获取超过 1 个对象

mysql - hibernate - 如何使用 Criteria 在选择中进行选择

mysql - 在持久化到数据库之前检查记录是否存在