Пружинная загрузка сущности JPA - PullRequest
0 голосов
/ 24 марта 2020

У меня есть объект с именем Order, который ссылается на объект с именем project, как показано ниже:

@Entity
@Table(name = "customer_order")
public class Order {

    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private Long id;

    @ManyToOne
    @JoinColumn(name = "project_id", nullable = false)
    private Project project;

    @Column(name = "user_id")
    private String userId;

    @Column(name = "created_at")
    @CreationTimestamp
    private Date createdAt;
}

И мой репозиторий выглядит следующим образом:

@Repository
public interface OrderRepository extends JpaRepository<Order, Long> {
}

Когда я вызываю мой остальные получают конечную точку для получения списка всех заказов, в ответ я получаю объект проекта внутри основного объекта заказа со всеми свойствами класса «проект». Я не хочу этого. Мне нужен объект отклика на стройный заказ с идентификатором проекта, на который он ссылается. Я попытался использовать приведенную ниже аннотацию к свойству project в классе Order, но он полностью избавился от деталей проекта.

@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)

Мне все еще нужен идентификатор проекта, который связан. Как мне это сделать?

1 Ответ

1 голос
/ 24 марта 2020

Я предполагаю, что ваша конечная точка возвращается JSON.

В этом случае вам придется написать свой собственный сериализатор.

  • Для Gson это может быть достигнуто путем реализации JsonSerializer и регистрации его в качестве адаптера типа
  • Для ObjectMapper (Джексон) вам придется расширить StdSerializer и добавить его в качестве сериализатора в ObjectMapper или использовать аннотацию @JsonSerialize (using = ItemSerializer.class) в классе модели
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...