【发布时间】:2017-10-09 16:23:23
【问题描述】:
我有一个多对一的关系:A *1 B,我想从具有 B 的 JSON 反序列化 A > 的主键(B 存在于具有该主键的数据库中):
{
"b": 1
}
我尝试了以下方法:
@Entity
@Table(name = "table_a")
@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property = "id")
public class A implements Serializable {
@JsonIgnore
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name = "b", unique = true, nullable = false)
private B b;
}
和
@Entity
@Table(name = "table_b")
public class B implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
@OneToMany(mappedBy = "b")
private List<A> a = new ArrayList<>();
}
但是对象 A 是用b = null 创建的。如何使用从 db 正确实例化的 b 属性反序列化 A?
注意:我使用的是 Jackson 2.6.1 版。
【问题讨论】:
-
您想从哪里获取 b 信息?查看 db 并创建自定义对象或仅使用 id 字段创建空的?
标签: java json jpa serialization jackson