UUID与Play框架

时间:2011-09-13 14:56:12

标签: playframework uuid

我想使用UUID代替常规ID 我的模特。

这可以通过播放框架完成吗?

2 个答案:

答案 0 :(得分:6)

首先不要在模型中扩展(play.db.jpa.Model)模型,但要使用GenericModel生成Id。

然后你可以使用在创建对象时调用的辅助类(在构造函数中)。

保存时调用helper类(因此我必须创建包装器DAO,保存过程在包装器DAO中完成而不是在Object中,这样我就可以生成id保存对象了)

或者如果您想要更简单的方法,请使用JPA UUID。请参阅下面的代码。

@Entity
public class User extends GenericModel {
    @Id
    @GeneratedValue(generator = "system-uuid")
    @GenericGenerator(name = "system-uuid", strategy = "uuid")
    public String id;
}

答案 1 :(得分:5)

嗯,Model类只是GenericModel的一个子类,它添加了属性,方法和注释,以提供生成的Long作为模型类的@Id属性。

如果您不想这样,您可以改为继承GenericModel并提供您自己的@Id。在你的情况下,它将是一个保存UUID的String。但是,您需要提出一种在新模型实例上初始化它的策略。

我不知道JPA提供的内置策略来生成UUID。一个简单的方法是创建一个辅助类,您可以调用方法来获取新的UUID,并确保每次创建新模型时都调用它。