java – 使用UUID作为主键时,Hibernate获取错误的ID值
发布时间:2020-12-15 04:47:00 所属栏目:Java 来源:网络整理
导读:我的实体: @Entity@Table(name = "eh_portal")public class PortalEntity { @Id @Column(name = "id",columnDefinition = "CHAR(36)") private UUID id; //java.util.UUID; @Column(name = "name") private String name; @Column(name = "url") private Str
我的实体:
@Entity @Table(name = "eh_portal") public class PortalEntity { @Id @Column(name = "id",columnDefinition = "CHAR(36)") private UUID id; //java.util.UUID; @Column(name = "name") private String name; @Column(name = "url") private String url; // -- Constructor for Hibernate -- protected PortalEntity() { } // -- Constructor for new entity in service code -- public PortalEntity(final UUID id) { this.id = id; } .... getters and setters ommited } 存储库是Spring DATA JPA: public interface PortalRepository extends CrudRepository<PortalEntity,UUID> { } MYSQL 5数据库表定义: CREATE TABLE `eh_portal` ( `id` char(36) NOT NULL COMMENT 'UUID',`name` varchar(255) NOT NULL,`url` varchar(255) NOT NULL,PRIMARY KEY (`id`),UNIQUE KEY `url_UNIQUE` (`url`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 问题是,Hibernate显然返回了错误的数据 – 请参阅下面的截图 通过Spring Data JPA获取实体的实际网页: 你可以看到UUID明显不同,而其他列是正确的. 解决方法
尝试使用@Type(type =“uuid-char”).
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |