Java 字段级反序列化不适用于Jackson

Java 字段级反序列化不适用于Jackson,java,json,spring-mvc,json-deserialization,jackson-databind,Java,Json,Spring Mvc,Json Deserialization,Jackson Databind,只有在对Jackson使用字段级反序列化时,我才收到400错误请求。如果我在类级别上进行反序列化,那么它工作得很好。我只想传递用户id,而不是整个用户对象,因此需要进行字段级的反序列化。据我所知,反序列化程序甚至没有被调用。我的代码如下: 模型类: @Entity @Table(name = "expense") @JsonIgnoreProperties(ignoreUnknown = true) public class Expense implements Serializable {

只有在对Jackson使用字段级反序列化时,我才收到
400错误请求。如果我在类级别上进行反序列化,那么它工作得很好。我只想传递用户id,而不是整个用户对象,因此需要进行字段级的反序列化。据我所知,反序列化程序甚至没有被调用。我的代码如下:

模型类:

@Entity
@Table(name = "expense")
@JsonIgnoreProperties(ignoreUnknown = true)
public class Expense implements Serializable {

private static final long serialVersionUID = 1L;

@Id
@GeneratedValue
private long id;

@Embedded
@AttributeOverrides({
        @AttributeOverride(name = "receiptPicture", column = @Column(name = "receipt_picture"))
})
private ExpenseDetail detail;

@ManyToOne
@JoinColumn(name = "given_by")
@JsonDeserialize(using = ExpenseGivenByDeserializer.class)
private User givenBy;

@ManyToOne
@JoinColumn(name = "given_for")
@JsonIgnore
private House givenFor;

@ManyToMany(cascade = {
        CascadeType.PERSIST,
        CascadeType.MERGE
})
@JoinTable(
        name = "users_approved_expenses",
        joinColumns = {@JoinColumn(name = "expense_id")},
        inverseJoinColumns = {@JoinColumn(name = "user_id")}
)
@JsonIgnore
private List<User> approvedUsers;

@Embedded
@JsonIgnore
private Timer timer;

//....setters and getters

在反序列化程序中,
节点
是所需的值节点。(使用
node.isValueNode()
进行检查)

这就够了

JsonNode node = oc.readTree(jp);
long id = node.asLong();
System.out.println("herer"); //prints!

return userDao.find(id);
{
    "detail" : {
        "description" : "rice 2 kg",
        "receiptPicture" : "../image/kk.jpg",
        "cost" : "1500"
    },
    "givenBy": 15
}
JsonNode node = oc.readTree(jp);
long id = node.asLong();
System.out.println("herer"); //prints!

return userDao.find(id);