我有一个表我想用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
答案 0 :(得分:1)
休眠方言恰好适合此工作。您可以做的是:
org.hibernate.dialect.PostgreSQL81Dialect
的子类或其任何后代。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)") );
}
}