我的实体:
@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工作台:
你可以看到UUID明显不同,而其他列是正确的。 这有什么不对? (Spring 4,Hibernate 4,Spring DATA JPA,Mysql 5)
答案 0 :(得分:11)
尝试使用@Type(type="uuid-char")
。