gpt4 book ai didi

java - DataOnDemand 测试中未填充 Spring Roo @Id 字段

转载 作者:行者123 更新时间:2023-12-01 05:52:07 29 4
gpt4 key购买 nike

我正在使用基于 Spring Roo 1.0.2 构建的 Web 应用程序。我定义了一个具有主键 PERSONID 列以及其他几个字段的实体。

@Id
@Column(name = "PERSONID", precision = 10, scale = 0)
private Long personId;

@Size(max = 50)
@Column(name = "NAME")
@NotNull
private String name;

...

Roo 管理的集成测试包含一个函数,用于实例化模拟对象并填充每个非 Id 字段。

public Person PersonDataOnDemand.getNewTransientPerson(int index) {
Person obj = new Person();
obj.setName("name_" + index);

//set other non-Id fields

return obj;
}

此函数是从集成测试中调用的,随后会失败,因为数据库表的 PERSONID 列上有非空约束。我尝试在 personId 列上显式设置 @NotNull 注释,但没有效果。我怀疑这与 PERSONID 是非自动生成的主键有关。

我知道我可以通过覆盖集成测试并自己填充 Id 来解决这个问题,但如果可能的话,我想避免这种情况。有谁知道我可以在托管 DataOnDemand 对象中自动填充此字段的方法吗?

最佳答案

Spring Roo 在其 _entity.aj 方面生成了自己的 ID 字段。因此,“基”类中不需要标有 @ID 的额外字段。Roo 托管 ID 字段应由 Roo 的 DataOnDemand 填充。

roo 托管 ID 的数据库列默认为“id”。如果您需要其他列名称(例如为了匹配数据库架构),则可以通过 @RooEntity.identifierColumn 指定该列。

关于java - DataOnDemand 测试中未填充 Spring Roo @Id 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4329339/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com