Я пишу 3 таблицы в следующем соотношении:
Клубный класс:
@Setter
@Getter
@Entity
@Table(name = "Club")
public class Club {
@Id
@GeneratedValue
private Long id;
private String name;
private String type;
private String mainPage;
private String logo;
@OneToMany(mappedBy="clubProductKey.club", cascade = CascadeType.ALL)
@JsonIgnoreProperties(value = "clubProductKey.club", allowSetters=true)
private Set<ClubProduct> clubProducts;
...
Класс продукта:
@Setter
@Getter
@Entity
@Table(name = "Product")
public class Product {
@Id
@GeneratedValue
private Long id;
@OneToMany(mappedBy="clubProductKey.product", cascade = CascadeType.ALL)
@JsonIgnoreProperties(value = "clubProductKey.product", allowSetters=true)
private Set<ClubProduct> clubProducts;
...
Класс ClubProduct:
@Setter
@Getter
@Entity
@Table(name = "ClubProduct")
public class ClubProduct {
@EmbeddedId
private ClubProductKey clubProductKey;
...
Класс ClubProductKey:
@Setter
@Getter
@Embeddable
public class ClubProductKey implements Serializable {
@ManyToOne(cascade = {CascadeType.MERGE,CascadeType.REFRESH })
@JoinColumn(name = "club_id", referencedColumnName = "id")
@JsonIgnoreProperties(value = "clubProducts", allowSetters=true)
private Club club;
@ManyToOne(cascade = {CascadeType.MERGE,CascadeType.REFRESH })
@JoinColumn(name = "product_id", referencedColumnName = "id")
@JsonIgnoreProperties(value = "clubProducts", allowSetters=true)
private Product product;
...
Класс ClubProductRepository:
public interface ClubProductRepository extends JpaRepository<ClubProduct, ClubProductKey> {
public List<ClubProduct> findByClubProductKeyClub(Club club);
public List<ClubProduct> findByClubProductKeyProduct(Product product);
}
Я пытаюсь сохранить clubProduct вот так:
@Service
public class ClubProductServiceImp implements ClubProductService {
@Autowired
private ClubProductRepository clubProductRepository;
...
ClubProduct savedClubProduct = clubProductRepository.save(clubProduct);
return savedClubProduct;
}
Однако я обнаружил, что clubProduct не сохраняется в списке clubProducts в объекте club или product, список пуст. Должен ли я добавлять такие строки, как club.getClubProducts.add(clubProduct)
, или есть другой способ добавить его автоматически?
Спасибо.