Есть много способов добиться этого:
1) Игнорировать свойства:
@Entity
public class A {
private long id;
@JsonIgnoreProperties({"prop1", "prop2"})
@ManyToOne
private B b;
}
2) JsonIdentityInfo и PropertyGenerator
.Требуется свойство id
.
public class A {
@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property = "id")
@JsonIdentityReference(alwaysAsId = true)
public B b;
public long id;
}
3) JsonValue - указывает один метод / поле, которое следует использовать для сериализации всего экземпляра.
public class B {
@JsonValue
public long id;
}
4) Пользовательский сериализатор:
@Entity
@JsonSerialize(using = ASerializer.class)
public class A {
private long id;
@ManyToOne
private B b;
// ...
}
В этом случае необходимо реализовать ASerializer
.
Это не самый простой, но гибкий и детализированный способ настройки сериализованных объектов.
См. этот пример.