gpt4 book ai didi

java - 将字符串中的 subString 替换为 Hibernate 选择查询

转载 作者:行者123 更新时间:2023-12-01 10:23:27 25 4
gpt4 key购买 nike

我有一个表,我想用 hibernate (java) 查询例如,这个表有 2 列

full_name |  age
---------------------
Mr Dony | 30
Mrs Clark | 32
Doc Who | 43

我想将 Doc 的每个值替换为 Doctor 显示条件结果将如下所示:

full_name |  age
---------------------
Mr Dony | 30
Mrs Clark | 32
Doctor Who| 43
  • 我不想编辑实际表数据

    我只想使用像replace-subString这样的东西,我如何使用hibernate来实现它?

如果这很重要,我的数据库是 PostgreSQL 和 vertica

最佳答案

Hibernate 的 Dialect 正是适合这项工作。你能做的是:

  1. 根据实际的 PostgreSQL 版本实现 org.hibernate.dialect.PostgreSQL81Dialect 的子类或其任何后代。
  2. 注册一个自定义函数(请参阅 PostgreSQL81Dialect 的构造函数),如下所示。
  3. 使用 Hibernate 声明您的方言
  4. 然后像使用 native 查询一样使用它update table_name set full_name = Replace(full_name, 'Doc', 'Doctor')。请注意,这会将所有出现的“Doc”替换为“Doctor”。


公共(public)类 PostgreSQL81DialectEx 扩展 PostgreSQL81Dialect {
公共(public) PostgreSQL81DialectEx() {
registerFunction( "替换", new SQLFunctionTemplate(StandardBasicTypes.STRING, "替换(?1, ?2, ?3)") );
}
}

关于java - 将字符串中的 subString 替换为 Hibernate 选择查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35452885/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com