Игнорировать поле объекта при отправке его в виде JSON клиенту
Привет) У меня есть entity-класс, который я отправляю с сервера из @RestController. Он связан с другим классом, отношениями многие-ко-многим. В ответе JSON, они ссылаются друг на друга и образуют, блин, бесконечное тело. Как мне это исправить? (П.с. то, что помечено аннотациями @Json* не работает)
@Entity
@Table(name = "articles")
public class Article {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String title;
private String text;
@Enumerated(EnumType.STRING)
private ArticleStatus status;
@Column(name = "author_id")
private Long authorId;
@Column(name = "created_at")
@CreatedDate
private Date createdAt;
@Column(name = "updated_at")
@LastModifiedDate
private Date updatedAt;
@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(name = "tags_articles",
joinColumns = {@JoinColumn(name = "post_id", referencedColumnName = "id")},
inverseJoinColumns = {@JoinColumn(name = "tag_id", referencedColumnName = "id")})
@JsonIgnore
private Set<Tag> tags;
@JsonProperty("tags")
public Set<Tag> getTags() {
return tags;
}
@JsonIgnore
public void setTags(Set<Tag> tags) {
this.tags = tags;
}
}
------------------------
@GetMapping("/my")
public List<Article> getMyPosts(Principal principal) {
User user = userService.findByEmail(principal.getName());
return articleService.getOwnerPosts(user);
}
------------------------------
//ответ:
[
{
"id": 6,
"title": "title",
"text": "text",
"status": "PUBLIC",
"authorId": 4,
"createdAt": "2021-01-13T16:05:52.000+00:00",
"updatedAt": "2021-01-13T16:05:52.000+00:00",
"tags": [
{
"id": 7,
"name": "tag",
"articles": [
{
"id": 6,
"title": "title",
"text": "text",
"status": "PUBLIC",
"authorId": 4,
"createdAt": "2021-01-13T16:05:52.000+00:00",
"updatedAt": "2021-01-13T16:05:52.000+00:00",
"tags": [
{
"id": 7,
"name": "tag",
"articles": [
{
"id": 6,
"title": "title",
"text": "text",
"status": "PUBLIC",
"authorId": 4,
"createdAt": "2021-01-13T16:05:52.000+00:00",
"updatedAt": "2021-01-13T16:05:52.000+00:00",
"tags": [
{
"id": 7,
"name": "tag",
"articles": [
{
"id": 6,
"title": "title",
"text": "text",
"status": "PUBLIC",
"authorId": 4,
"createdAt": "2021-01-13T16:05:52.000+00:00",
"updatedAt": "2021-01-13T16:05:52.000+00:00",
"tags": [
{
"id": 7,
"name": "tag",
"articles": [
{
"id": 6,
"title": "title",
"text": "text",
"status": "PUBLIC",
"authorId": 4,
"createdAt": "2021-01-13T16:05:52.000+00:00",
"updatedAt": "2021-01-13T16:05:52.000+00:00",
"tags": [
{
"id": 7,
"name": "tag",
"articles": [
{
"id": 6,
"title": "title",
"text": "text",
"status": "PUBLIC",
"authorId": 4,
"createdAt": "2021-01-13T16:05:52.000+00:00",
"updatedAt": "2021-01-13T16:05:52.000+00:00",
"tags": [
{
"id": 7,
"name": "tag",
//и так далее