为了账号安全,请及时绑定邮箱和手机立即绑定

休眠,获取uuid的映射异常

休眠,获取uuid的映射异常

慕尼黑的夜晚无繁华 2021-04-06 15:15:14
我有一个没有实体对象的简单主类,需要UUID作为输出的普通SQL。我得到一个映射异常,要解决该映射异常,我创建了自己的自定义方言,即使那时该映射异常仍然存在。休眠版本非常旧,为3.2.6,由于受限制,我无法升级。让我知道我是否仍然可以解决。我的函数看起来像这样:SQLQuery getGidQuery = session.createSQLQuery("SELECT gid FROM table WHERE id = " + result.getId());UUID gid = UUID.fromString(getGidQuery.uniqueResult().toString());为避免上述异常,我创建了自己的方言类,扩展了PostgresDialect,其中包括UUID方言,但仍引发异常。public class PostgresUuidDialect extends PostgreSQLDialect {public PostgresUuidDialect() {    super();    registerColumnType(java.sql.Types.OTHER, "pg-uuid");}}我的配置创建private static Configuration getDatabaseConfiguration(CommandLine commandLine, String database) {    Configuration configuration = new AnnotationConfiguration();    configuration.setProperty("hibernate.connection.username", commandLine.getOptionValue('u'));    configuration.setProperty("hibernate.connection.password", commandLine.getOptionValue('p'));    configuration.setProperty("hibernate.connection.url",            "jdbc:postgresql://" + commandLine.getOptionValue('h') + ":" + commandLine.getOptionValue("o")                    + "/" + database + "?searchpath=" + database);    configuration.setProperty("hibernate.dialect", "<package>.PostgresUuidDialect");    return configuration;}
查看完整描述

1 回答

?
SMILET

TA贡献1796条经验 获得超4个赞

尝试以下方法:

.addScalar("ID", StringType.INSTANCE)

(使用正确的类型,不一定使用StringType)

RegisterHibernateType( ... )

在您的构造函数中


查看完整回答
反对 回复 2021-04-21
  • 1 回答
  • 0 关注
  • 148 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信