2
我注意到Spring Data Rest存儲庫的行爲方式存在異常。我有兩種類型的實體。在我的應用程序中 - 只讀實體(用於參考數據,如狀態碼,國家代碼,郵政編碼等)。我不想讓最終用戶改變這些。所以我實現了以下ReadOnly存儲庫。Spring Data Rest CrudRepository vs ReadOnlyRepository
@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);
}
}
我有一個相同的控制器相應的國家實體。
有趣的是,對StateController的請求給了我一個HATEOAS json響應,而對Address的請求給了我一個非HATEOAS json響應。是什麼賦予了?