Имея следующую структуру базы данных:
Я определил Модели следующим образом:
Билет Класс:
@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"
}]
Спасибо