Java SpringDataREST默认情况下从JSON隐藏技术实体字段(@Version,@Id)。如何像平常一样归还它们?
我有一个基础班Java SpringDataREST默认情况下从JSON隐藏技术实体字段(@Version,@Id)。如何像平常一样归还它们?,java,json,spring,spring-data-rest,Java,Json,Spring,Spring Data Rest,我有一个基础班 @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;
@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;
}
这两种解决方案看起来都像黑客。是否存在更好的方法?显示正在
RepositoryRestConfigurerAdapter中配置的实体的ID
:
@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);
}
};
}
地址和答案是。。。公开版本已寻址。感谢您发布MappedSuperclass代码,它帮助我发现我没有向其中添加数据注释,即使它是针对我的实体类注册的。截至2020年3月,我只需要补充这些,其他所有的“ExposeID”技术都不是必需的,它们(毫不奇怪)也没有解决我的问题。谢谢!那么@Version呢?我想您不需要它-JPA提供程序直接使用它…我想对嵌套资源应用乐观锁定。没有版本,我只能在匹配顶级资源时应用。
@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);
}
};
}