Java hibernate在oracle数据库中存储uuid2

cl25kdpy  于 2023-05-18  发布在  Java
关注(0)|答案(1)|浏览(125)

我正在oracle db table表列中存储一个值

id VARCHAR2(50 BYTE) NOT NULL

Java代码

@Data
@Entity
@Table(name = "TABLE_TEST_1", schema = "QA")
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class TestUuid implements Serializable {
    @Id
    @NotNull
    @GeneratedValue(generator = "uuid2")
    @GenericGenerator(name = "uuid2", strategy = "uuid2")
    @Column(name = "ID", nullable = false)
    private java.util.UUID id;

要保存我使用一个存储库接口并进行保存
当保存的实体被传递时,我得到的uuid为61adf93b-b76d-4b38-a43a-ffc033ad4cea,但它在数据库中存储为61ADF93BB76D4B38A43AFFC033AD4CEA,当我使用JPA进行查找时,它给出了另一个值36314144-4639-3342-4237-364434423338
它使用本机查询正确地检索值
你能告诉我为什么我会注意到异常点吗?
谢谢

83qze16e

83qze16e1#

在Oracle中,字段类型必须为RAW(16)。如果你使用liquibase,你可以将type设置为UUID,它将在oracle中被创建为RAW(16)

相关问题