簡體   English   中英

@JsonIgnore 不適用於 Spring Boot 應用程序

[英]@JsonIgnore is not working on spring boot application

我正在創建一個 RESTful Web 服務。 一切正常,除非我在我的一個具有@OneToMany關系的類中添加@JsonIgnore注釋。 我正進入(狀態:

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格式。

在您的 Car 類中,在您的“所有者”聲明上方添加以下內容:

 @JsonIgnoreProperties({"hibernateLazyInitializer", "handler"})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM