如果我有一个包含@Id
字段的课程,我可以像这样使用@JsonIdentityInfo
:
@Entity
@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property = "id")
class Example {
@Id
int id;
// getter setter
}
但如果我有一个复合PK类:
@Entity
@IdClass(value = PointID.class)
public class Point {
@Id
private int x;
@Id
private int y;
}
@SuppressWarnings("serial")
class PointID implements Serializable {
int x, y;
}
如何使用注释?在上面的例子中,用法将是这样的
Point p = new Point(1,1);
object1.setPoint(p);
object2.setPoint(p);
bigObject.add(object1, object2);
当我序列化bigObject
时,我不想重复点数据,但使用其ID与第一个示例一样。
答案 0 :(得分:1)
我搜索了Jackson文档和源代码,但找不到对由多个属性组成的object-id的支持。
所以我的建议是在getter方法中创建这样一个复合键:
Protractor 5.1.2
答案 1 :(得分:1)
根据我的尝试和在线研究,似乎@JsonIdentityInfo
不适用于复合PK。