1
public class Test{
    @Id
    @JsonIgnore
    @GeneratedValue(generator = "uuid2")
    @GenericGenerator(name = "uuid2", strategy = "uuid2")
    @Column(name="TEST_ID",columnDefinition = "BINARY(16)")
    @Type(type="uuid-binary")
    //@Column(name="TEST_ID",columnDefinition = "BINARY(32)")
    //@Type(type="uuid-char")
    private UUID testId;

    @Id
    @JsonIgnore
    @GeneratedValue(generator = "uuid2")
    @GenericGenerator(name = "uuid2", strategy = "uuid2")
    @Column(name="USER_ID",columnDefinition = "BINARY(16)")
    //@Column(name="USER_ID",columnDefinition = "BINARY(32)")
    //@Type(type="uuid-binary") //@Type(type="uuid-char")
    private UUID userId;

    public void setTestId(UUID testId) {
        this.testId = testId;
    }

    public UUID getTestId() {
        return testId;
    }    

}

将数据保存在数据库中。UUID 在数据库中保存为 BLOB。从数据库获取 ID 时出错

test.setTestId( UUID.nameUUIDFromBytes((byte[]) row[0]));

mysql表:

DROP TABLE IF EXISTS `DBName`.`testtable` ;
CREATE TABLE IF NOT EXISTS `DBName`.`testtable` (
`test_id` binary(16) NOT NULL,
`user_id` binary(16) NOT NULL,
`company_id` VARCHAR(45) NOT NULL,
PRIMARY KEY (`test_id`),
UNIQUE KEY `company_test_id` (`company_id`, `test_id`))
ENGINE = InnoDB;

尝试的解决方案:

//@Column(name="TEST_ID",columnDefinition = "BINARY(32)")
//@Type(type="uuid-binary") //@Type(type="uuid-char")

没有任何效果。

4

0 回答 0