Связь @ManyToOne: GetRequest без завершенного объекта ForeignKey - PullRequest
0 голосов
/ 03 января 2019

Имея следующую структуру базы данных:

enter image description here

Я определил Модели следующим образом:

Билет Класс:

@Entity
@Table(name = "TICKET")
public class Ticket {

    @Id
    @Column(name = "id")
    private Long ticketId;

    @ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name = "categoryId")
    private Category categoryId;

    private String description;

    // Ommiting Getters and Setters for abreviation...

}

Категория Класс:

@Entity
@Table(name = "CATEGORIES")
public class Category {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "ID")
    private Long categoryId;

    private String description;

    @JsonManagedReference
    @ManyToMany(fetch = FetchType.LAZY, cascade = { CascadeType.PERSIST, CascadeType.MERGE })
    @JoinTable(name = "CATEGORY_SUBCATEGORIES", joinColumns = @JoinColumn(name = "category_id"), inverseJoinColumns = @JoinColumn(name = "subcategory_id"))
    private Set<Subcategory> subcategories = new HashSet<>();
}

У меня есть еще два класса для подкатегории и шаблона, которые связаны с отношением @ManyToMany, а такжеКатегория.Для них это хорошо.

У меня есть следующий чистый репозиторий и контроллер для заявок:

public interface TicketRepository extends JpaRepository<Ticket, Long>{

}

Это просто для тестирования JPA, так что это простой контроллер findAll:

@RestController
@CrossOrigin(origins = "*")
@RequestMapping(value = "/api")
public class TicketController {

    @Autowired
    private TicketRepository ticketRepository;

    @GetMapping("/tickets")
    public List<Ticket> getTickets() {
        return ticketRepository.findAll();
    }
}

При выполнении запроса к этой конечной точке Json будет выглядеть примерно так:

[{
  "ticketId": 1,
  "categoryId": {
    "categoryId": 1,
    "description": "dsadsadsa",
    "subcategories": [{
      "subCategoryId": 1,
      "description": "dsadasdsad",
      "templates": [{
        "description": "adsadsadsa",
        "id": 1
      }]
    }]
  },
  "description": "dasdasdas"
}]

Не могли бы вы сообщить мне, как в объекте может быть только category_id?- Таким образом, JSON будет выглядеть так:

[{
  "ticketId": 1,
  "categoryId": 1,
  "description": "dasdasdas"
}]

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...