【发布时间】:2015-10-27 06:46:35
【问题描述】:
我有一个名为 EmployeeDepartment 的实体,如下所示
@IdClass(EmployeeDepartmentPK.class) //EmployeeDepartmentPK is a serializeable object
@Entity
EmployeeDepartment{
@Id
private String employeeID;
@Id
private String departmentCode;
---- Getters, Setters and other props/columns
}
我有一个如下定义的 Spring Data Repository
@RepositoryRestResource(....)
public interface IEmployeeDepartmentRepository extends PagingAndSortingRepository<EmployeeDepartment, EmployeeDepartmentPK> {
}
此外,我注册了一个转换器,可以从 String 转换为 EmployeeDepartmentPK。
现在,对于一个由 ID employeeID="abc123" 和 departmentCode="JBG" 限定的实体,我希望在调用 SDR 接口时使用的 ID 是 abc123_JBG。 例如,http://localhost/EmployeeDepartment/abc123_JBG 应该为我获取结果,并且确实如此。
但是,当我尝试使用 PUT 保存实体时,Spring Data Commons 的 BasicPersistentEntity 类中可用的 ID 属性值为 部门代码的 abc123_JBG。这是错误的。我不确定这是否是预期的行为。
请帮忙。
谢谢!
【问题讨论】:
标签: spring hibernate jpa spring-data spring-data-rest