我使用两个数据库oracle和postgresql。我有一个类JsonType实现UserType。在setObject方法中,postgresql使用Types.OTHER和来自Types.VARCHAR的oracle。是否可以通过在hibernate.cfg.xml配置文件中进行补充的方式来执行此操作?不幸的是,替换手的类型没有起作用:/。请帮助
@Override
public void nullSafeSet(final PreparedStatement ps, final Object value, final int idx,
final SessionImplementor session) throws HibernateException, SQLException {
if (value == null) {
ps.setNull(idx, Types.OTHER);
return;
}
try {
final ObjectMapper mapper = new ObjectMapper();
final StringWriter w = new StringWriter();
mapper.writeValue(w, value);
w.flush();
ps.setObject(idx, w.toString(), Types.OTHER);
} catch (final Exception ex) {
throw new RuntimeException("Failed to convert Invoice to String: " + ex.getMessage(), ex);
}
}
编辑: 文件hibernate.cfg.xml由模式填充,因此这是一个文件,对于这两个数据库不是分开的