为 Playframework 2.3x 生成基于 UUID 的@ID
Generating UUID based @ID for Playframework 2.3x
大家好,
我想为 Playframework 和 Ebeans 创建不使用默认 @Id 自动生成的模型。我在网上看到有使用 GenericModel 的选项,但是 class 似乎没有包含在 2.3x 版本中。我这样做是为了解决这个问题,但我仍然没有达到我的目标
public class ProductVariants extends Model
{
@Id
String id;
public String getId() {
return (this.id == null) ? UUID.randomUUID().toString() : this.id;
}
public void setId(String id) {
this.id = id;
}
}
问题是我必须手动设置 ID 才能保存对象,例如
productVariant.setId(productVariant.getId());
productVariant.save();
对于主要模型及其所有具有 OneToMany 关系的相关模型,当我从视图绑定到模型对象时出现错误 ERROR executing DML bindLog[] error[Field 'id' doesn't have a default value]]]
。
如有任何帮助,我们将不胜感激。
大家好,
我最终使用 JDK 附带的 UUID class 解决了这个问题。因此,当您创建模型时,您使用
创建它们
@Id
public java.util.UUID id
同样在路由文件中,如果您需要通过 ID 映射到记录,您可以通过执行类似的操作来做到这一点
GET /:pid/edit controllers.Application.edit(pid: java.util.UUID)
大家好,
我想为 Playframework 和 Ebeans 创建不使用默认 @Id 自动生成的模型。我在网上看到有使用 GenericModel 的选项,但是 class 似乎没有包含在 2.3x 版本中。我这样做是为了解决这个问题,但我仍然没有达到我的目标
public class ProductVariants extends Model
{
@Id
String id;
public String getId() {
return (this.id == null) ? UUID.randomUUID().toString() : this.id;
}
public void setId(String id) {
this.id = id;
}
}
问题是我必须手动设置 ID 才能保存对象,例如
productVariant.setId(productVariant.getId());
productVariant.save();
对于主要模型及其所有具有 OneToMany 关系的相关模型,当我从视图绑定到模型对象时出现错误 ERROR executing DML bindLog[] error[Field 'id' doesn't have a default value]]]
。
如有任何帮助,我们将不胜感激。
大家好,
我最终使用 JDK 附带的 UUID class 解决了这个问题。因此,当您创建模型时,您使用
创建它们@Id
public java.util.UUID id
同样在路由文件中,如果您需要通过 ID 映射到记录,您可以通过执行类似的操作来做到这一点
GET /:pid/edit controllers.Application.edit(pid: java.util.UUID)