Java 已忽略Setter上的Spring@JsonProperty

Java 已忽略Setter上的Spring@JsonProperty,java,json,spring,Java,Json,Spring,我正在尝试从POJO获取json。我只想在setter上获取Json(以便设置对象的集合) 我有一个公司班,班上有一组员工。 当我在company对象上设置employee集合时,我希望看到ObjectMapper生成的Json对象上的集合。但它不起作用 这里是我的代码和问题 @Entity public class Company implements Serializable { //------------------- // PROPERTY //-------

我正在尝试从POJO获取json。我只想在setter上获取Json(以便设置对象的集合)

我有一个公司班,班上有一组员工。 当我在company对象上设置employee集合时,我希望看到ObjectMapper生成的Json对象上的集合。但它不起作用

这里是我的代码和问题

@Entity
public class Company implements Serializable {

    //-------------------
    // PROPERTY
    //-------------------

    @ManyToMany
    @JsonIgnore
    @JoinTable(name = "COMPANY_EMPLOYEE",
               joinColumns = @JoinColumn(name="company_id", referencedColumnName="ID"),
               inverseJoinColumns = @JoinColumn(name="employees_id", referencedColumnName="ID"))
    private Set<Employee> employees = new HashSet<>();


    //-------------------
    // GETTER AND SETTER
    //-------------------

    @JsonIgnore
    public Set<Employee> getEmployees() {
        return employees;
    }

    @JsonProperty
    public void setEmployees(Set<Employee> employees) {
        this.employees = employees;
    }

}

//------ In Main Application

Company company = new Company();
        company.setName("Company");
        //etc....... company properties

Employee employee = new Employee();
         employee.setFirstName("FirstName");
        //etc....... employee properties

//Create the set of employee
Set<Employee> employeeSet = new HashSet<>();
              employeeSet.add(employee);

//Add the list/set of employee to the company      
company.setEmployees(employeeSet);

//Expect to have the employee set here but it's empty...
 ObjectMapper objectMapper = new ObjectMapper();
 System.out.println(new String(objectMapper.writeValueAsBytes(company))); 
@实体
公共类公司实现可序列化{
//-------------------
//财产
//-------------------
@许多
@杰索尼奥雷
@JoinTable(name=“公司\员工”,
joinColumns=@JoinColumn(name=“company\u id”,referencedColumnName=“id”),
inverseJoinColumns=@JoinColumn(name=“employees\u id”,referencedColumnName=“id”))
私有集employees=newhashset();
//-------------------
//接二连三
//-------------------
@杰索尼奥雷
公共集合getEmployees(){
返回员工;
}
@JsonProperty
公共无效集合雇员(集合雇员){
这是。雇员=雇员;
}
}
//------主要应用
公司=新公司();
公司名称(下称“公司”);
//等等。。。。。。。公司财产
员工=新员工();
雇员。setFirstName(“FirstName”);
//等等。。。。。。。员工财产
//创建员工的集合
Set employeeSet=new HashSet();
employeeSet.add(员工);
//将员工列表/集合添加到公司
公司员工集合(员工集合);
//希望在此处设置员工,但它是空的。。。
ObjectMapper ObjectMapper=新的ObjectMapper();
System.out.println(新字符串(objectMapper.writeValueAsBytes(company));
更新:

我跟随这篇文章解释了这个问题。(这正是我想要的)


提前感谢。

试着像这样将JsonProperty放在employees成员身上@JsonProperty private Set employees=new HashSet();我尝试过这样做:java:annotation-type不适用于这种声明您在字段上有
@JsonIgnore
,因此您在访问器上放置的任何内容都将被忽略。不,如果您希望有一个异步机制(例如反序列化),实际上它应该是这样工作的尝试像这样将JsonProperty放在employees成员上@JsonProperty private Set employees=new HashSet();我尝试过这样做:java:annotation-type不适用于这种声明您在字段上有
@JsonIgnore
,因此您在访问器上放置的任何内容都将被忽略。不,如果您希望有一个异步机制(例如反序列化),实际上它应该是这样工作的