У меня проблема с использованием JPA и RelationsShips One to Many с Джексоном и Spring Rest ... Я пытаюсь найти несколько решений, но у меня все работает, и я не знаю, в чем проблема.
Например, у меня есть таблица Team, которая имеет отношение один ко многим / много ко одному
У меня есть два хранилища, одно для команды и другое для игрока
Team >>> has Many >> Player
Player >>> many to one >> Team
Моя сущность Команда имеетследующее содержание
@Entity
@Table(name = "teams")
@JsonIdentityInfo(generator=ObjectIdGenerators.PropertyGenerator.class, property="id")
public class Team {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
private long teamId;
private String abbreviation;
private String team;
private String simpleName;
private String logo;
@OneToMany(cascade = {CascadeType.ALL,CascadeType.PERSIST,CascadeType.MERGE}, mappedBy = "team")
@Column(nullable = false)
private List<Player> players;
Theirs getters/setter , hashcodes and string similars.
С другой стороны, сущность Player
@Entity
@Table(name = "player")
@JsonIdentityInfo(generator=ObjectIdGenerators.PropertyGenerator.class, property="id")
public class Player {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", unique = true, nullable = false)
private long id;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "teams_id", nullable=true)
private Team team;
private String name;
Итак, у меня есть типичный вызов get в контроллере в хранилище.
@RestController
@RequestMapping("/api/public/team")
public class TeamController {
@Autowired
private TeamRepository teamRepository;
@Autowired
private GenericMethods genericMethods;
@GetMapping(value = "/{id}")
public Team getPersona(@PathVariable("id") int id) {
return teamRepository.findOne(genericMethods.toLong(id));
}
И хранилище
@Repository
public interface TeamRepository extends JpaRepository<Team, Long> {
}
Теперь, когда я вызываю эту конечную точку, я получаю следующий ответ и считаю, что это неверно, мне нужен только Список с игроками
{
"id":2,
"teamId":0,
"abbreviation":null,
"team":null,
"simpleName":"Betis",
"logo":null,
"players":[
{
"id":1,
"team":2,
"category":{
"id":1,
"nombre":"juvenil a",
"language":null,
"description":null,
"league":[
],
"players":[
1,
{
"id":2,
"team":2,
"category":1,
"name":"hulio"
}
]
},
"name":"pepe"
},
2
]
}
Мне нужноДоступ к информации с Player и Team, поэтому я не могу использовать @ JsonIgnoreProperties
Может ли кто-нибудь помочь решить эту проблему?