加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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显然返回了错误的数据 – 请参阅下面的截图
Mysql工作台:

enter image description here

通过Spring Data JPA获取实体的实际网页:

enter image description here

你可以看到UUID明显不同,而其他列是正确的.
这有什么不对? (Spring 4,Hibernate 4,Spring DATA JPA,Mysql 5)

解决方法

尝试使用@Type(type =“uuid-char”).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读