亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將 UUID 作為 blob 轉換為正確的字符串 id hibernate

將 UUID 作為 blob 轉換為正確的字符串 id hibernate

慕田峪9158850 2023-06-14 16:35:02
我使用的 UUID 是我在實體中的 ID (@Id)。是這樣的:import java.util.UUID;@Table(name="address_book")@Entity  public class AddressBook {    @Id  private UUID id;  private String name;  .  .  . }現在發生的事情是,當我調用 addressBookDao.save(addressBook) 或每當我在數據庫中保存數據時,它被存儲為:id, name, isbn, date, username{blob}, john, isbn-45888, 15-02-2019, david所以在 id 列中,我在插入的每一行中都寫了這個 blob。我認為 UUID 會生成一個隨機 ID,而不是將 UUID 的整個 json 對象存儲為該 ID 列中的 blob。我該如何解決這個問題。我想要字符串/隨機值而不是 blob/對象?
查看完整描述

3 回答

?
守候你守候我

TA貢獻1802條經驗 獲得超10個贊

您需要像這樣設置適當的 Hibernate?Generator

@Id

@GeneratedValue(generator = “UUID”)

@GenericGenerator(

? ? name = “UUID”,

? ? strategy = “org.hibernate.id.UUIDGenerator”,

)

private UUID id;


查看完整回答
反對 回復 2023-06-14
?
守著一只汪

TA貢獻1872條經驗 獲得超4個贊

import java.util.UUID;

@Table(name="address_book")

@Entity??

public class AddressBook {??

@Id

@GeneratedValue(generator = "uuid2")

@GenericGenerator(name = "uuid2", strategy = "uuid2")

@Column(name = "name", updatable = false, nullable = false, columnDefinition = "VARCHAR(36)")

@Type(type = "uuid-char")

private String name;

.

.

.

}

這肯定會奏效。


查看完整回答
反對 回復 2023-06-14
?
桃花長相依

TA貢獻1860條經驗 獲得超8個贊

你真的是說BLOB嗎?一個 UUID 是 128 位,當然不符合 LOB 列的條件。例如,您可以在 MySQL 中使用 Binary(16) 列。


現在回答你的問題,你需要告訴hibernate如何生成ID值。


    @Id

    @GeneratedValue(generator = "hibernate-uuid")

    @GenericGenerator(name = "hibernate-uuid", strategy = "uuid2")

    @Column(name = "id", columnDefinition = "BINARY(16)")

    protected UUID id;


查看完整回答
反對 回復 2023-06-14
  • 3 回答
  • 0 關注
  • 190 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號