Я изучал Spring Boot (1.2.4), чтобы создать простой репозиторий RESTful, используя H2 & Jackson.Spring Boot частично заменяет autoconfiguration
Как и другие, я заметил, что по умолчанию поля @Id не находятся в возвращенном Json (как описано в этом вопросе: While using Spring Data Rest after migrating an app to Spring Boot, I have observed that entity properties with @Id are no longer marshalled to JSON).
Поэтому я хочу настроить конфигурацию, чтобы включить их.
НО У меня возникли проблемы с тем, чтобы все это работало.
Базовый класс объектов:
@Entity
public class Thing {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private long id; //I want this to appear in the RESTful JSON
private String someInformation;
protected Thing(){};
public String getSomeInformation() { return someInformation; }
public void setSomeInformation(String someInformation) { this.someInformation = someInformation; }
}
Базовый интерфейс хранилища:
public interface ThingRepository extends PagingAndSortingRepository<Thing, Long> {
List<Thing> findBySomeInformation(@Param("SomeInformation") String someInformation);
}
Простой Отправной применение:
@ComponentScan
@EnableAutoConfiguration
public class Application {
public static void main(String[] args) throws Exception {
SpringApplication.run(Application.class, args);
}
}
И мой класс конфигурации:
@Configuration
public class RepositoryRestMvcConfig extends SpringBootRepositoryRestMvcConfiguration {
@Override
protected void configureRepositoryRestConfiguration(RepositoryRestConfiguration config) {
config.exposeIdsFor(Thing.class);
}
}
Я вижу, как работает Spring Boot с --debug (как описано в http://docs.spring.io/spring-boot/docs/current/reference/html/using-boot-auto-configuration.html), что моя конфигурация найдена, но она, похоже, не имеет никакого эффекта.
Добавить getter/setter для свойства id? – jst
Если вы добавите геттер и сеттер, он будет работать – ArunM