我注意到Spring Data Rest存储库的行为异常。我有两种类型的实体。在我的应用程序中 - 只读实体(用于参考数据,如州代码,国家代码,邮政编码等)。我不想让最终用户改变这些。所以我实现了以下ReadOnly存储库。
@NoRepositoryBean
public interface ReadOnlyRepository<T, ID extends Serializable> extends Repository<T, ID> {
T findOne(ID id);
Iterable<T> findAll();
}
@Repository
public interface StateRepository extends ReadOnlyRepository<State, Long> {
}
现在,所有其他实体都有与之关联的CrudRepositories,因为它们是可编辑的实体,例如引用状态和邮政编码的地址。
这是一个例子。
@Repository
public interface CustomerRepository extends CrudRepository<Address, Long> {
}
我有一个只读和可编辑实体的控制器,带有对存储库的传递调用。
@RestController
@RequestMapping(value = "/addresses", produces = MediaType.APPLICATION_JSON_VALUE)
public class AddressController {
@Autowired
private AddressRepository addressRepository;
@RequestMapping(method = RequestMethod.GET)
@ResponseStatus(HttpStatus.OK)
public Iterable<Address> getAllAddresses() {
return addressRepository.findAll();
}
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
@ResponseStatus(HttpStatus.OK)
public Address getAddress(@PathVariable("id") Long id) {
return addressRepository.findOne(id);
}
}
我有一个与State实体对应的相同的Controller。
有趣的是,对StateController的请求给了我一个HATEOAS json响应,而对Address的请求给了我一个非HATEOAS json响应。是什么给了什么?
答案 0 :(得分:0)
我的坏。我的应用程序服务器没有重新部署某些存储库。这不是问题。
因此,对于遇到这些问题的人,您可能正在使用IDE的热代码替换功能。考虑重新启动您的应用程序,它应该是一个非问题。