用Hibernate select query

时间:2016-02-17 09:39:33

标签: java hibernate

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

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

我想将Doc的每个值替换为Doctor show标准结果将会显示:

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

    我只想使用像replace-subString这样的东西我怎么能用hibernate来实现呢?

如果那个问题我的db是PostgreSQL和vertica

1 个答案:

答案 0 :(得分:1)

休眠方言恰好适合此工作。您可以做的是:

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

public class PostgreSQL81DialectEx extends PostgreSQL81Dialect { public PostgreSQL81DialectEx() { registerFunction( "replace", new SQLFunctionTemplate(StandardBasicTypes.STRING, "replace(?1, ?2, ?3)") ); } }