考虑以下带有 JPA 注释的映射
@ManyToMany(cascade = { CascadeType.ALL })
@JoinTable(name = "infotype_validations",
joinColumns = { @JoinColumn(name = "info_type_id") },
inverseJoinColumns = { @JoinColumn(name = "validation_id") }
)
@OrderBy(value="validation_id desc")
public Set<Validation> getValidation() {
return validation;
}
我的目的是在数据库中有一个可连接的对象,每次在我的服务中调用 getValidation() 时,记录都会按validation_id 排序返回。现在为了测试我的功能,我使用 DbUnit。每次我启动一个测试类时,我的数据库都会被创建,hibernate 会创建我的表,然后 DbUnit 会用数据填充它们。当我评论 @OrderBy 时,我的测试通过了,但是当我取消注释时,我得到表 infotype_validations 无法找到。我查看了在线可用文档,似乎完全有可能在这种映射中使用@OrderBy。那么我缺少什么?
您需要使用字段名称而不是列名称。
//Assuming the field is validationId
@OrderBy(value="validationId desc")
public Set<Validation> getValidation() {
return validation;
}
还要确保infotype_validations
表存在于您的数据库中并且拼写匹配。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)