我有一个基类
@MappedSuperclass
@Data //lombok annotation for getters/setter
public class BaseEntity implements Identifiable<Long> {
@Id @GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Version
private Long version;
}
对于任何派生类,Spring Data REST返回没有“id”和“version”属性的JSON。
我找到了2个解决方案:
使用其他名称添加getter / setter:
public Long getRevision() {
return version;
}
public void setRevision(Long revision) {
this.version = revision;
}
public Long getIdentifier() {
return id;
}
public void setIdentifier(Long identifier) {
this.id = identifier;
}
两种解决方案看起来都像黑客一样。是否存在更好的方法?
答案 0 :(得分:2)
在RepositoryRestConfigurerAdapter
:
@Bean
public RepositoryRestConfigurerAdapter repositoryRestConfigurerAdapter() {
return new RepositoryRestConfigurerAdapter() {
/**
* Exposing ID for some entities
*/
@Override
public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config) {
config.exposeIdsFor(MyEntity.class);
super.configureRepositoryRestConfiguration(config);
}
};
}