如何存储具有设置UUID的实体?

时间:2015-08-09 20:31:53

标签: java sql-server hibernate jpa uuid

我正在使用MS SQL Server + Hibernate(JPA,更确切地说,使用EntityManager),我遇到了问题:我需要将实体存储到我的数据库中的相应表中;此表以uniqueidentifier为主键;并且存储实体已经具有UUID(它的主键),应该将其插入到数据库中。

问题在于,当我尝试merge我的实体时,hibernate会做一些魔法并使用另一个 UUID值存储我的实体。所以,当我从db获取这个实体并查看它的ID时,我看到了不合适的价值。 所以,我想告诉hibernate不要这样做(或者,也许还有另一种解决方案?)。

我的实体类:

public class Entity extends BaseEntity {
    @Id
    @GeneratedValue(generator = "uuid2")
    @GenericGenerator(name = "uuid2", strategy = "uuid2")
    @Column(name = "id_column")
    private UUID uuId;

    // other fields, getters, setters
}

另外,我还有一个“烦恼”:我的IDE和我的数据库浏览器在该列中显示了另一个ID。我的意思是,当我在调试模式下停止我的应用程序并查看实体的id时,我会从数据库中的值看到不同的值。

提前致谢!

0 个答案:

没有答案