Я создаю RESTful веб-сервис.Все работает хорошо, за исключением случаев, когда я добавляю аннотацию @JsonIgnore
в один из моих классов, который имеет отношение @OneToMany
.Я получаю:
com.fasterxml.jackson.databind.exc.InvalidDefinitionException: не найден сериализатор для класса org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor и не обнаружены свойства для создания BeanSerializer (дляизбегать исключений, отключить SerializationFeature.FAIL_ON_EMPTY_BEANS) (через цепочку ссылок: java.util.ArrayList [0] -> com.packt.cardatabase.domain.Car ["owner"] -> com.packt.cardatabase.domain.Owner $ HibernateProxy$ AcLDWRSD ["hibernateLazyInitializer"])
Мой pom.xml:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>eclipselink</artifactId>
<version>2.5.0</version>
</dependency>
</dependencies>
Мой контроллер:
@RestController
public class CarController {
@Autowired
private CarRepository repository;
@RequestMapping("/cars")
public Iterable<Car> getCars(){
return repository.findAll();
}
}
Моя сущность:
@Entity
@Table(name = "owner")
public class Owner {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private long ownerid;
private String firstname, lastname;
@OneToMany(cascade =CascadeType.ALL, mappedBy="owner")
@JsonIgnore <---- My problem
private List<Car> cars;
public Owner() {
}
....
}
Я могу получить сериализованные данные из базы данных, когда удаляю @JsonIgnore
.Но не в формате JSON
, когда я добавляю аннотацию.