У меня есть класс Аукцион и Предмет, имеющий много-много отношений друг с другом.
public class Auction implements BaseEntity,Comparable<Auction>{
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name = "auction_id")
private Long auctionId;
@Basic(optional = false)
@Column(name = "auction_name")
private String auctionName;
@ManyToMany
@JoinTable(name = "auction_items", joinColumns = {
@JoinColumn(name = "auction_id", referencedColumnName = "auction_id")}, inverseJoinColumns = {
@JoinColumn(name = "item_id", referencedColumnName = "item_id")})
private List<Item> itemList;
.....}
public class Item implements BaseEntity{
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="item_id")
private long itemId;
@Column(name="item_name")
private String itemName;
public class Item implements BaseEntity{
private static final long serialVersionUID = 1L;
@ManyToMany
@JoinTable(name="auction_items",joinColumns={@JoinColumn(name="item_id")},inverseJoinColumns={@JoinColumn(name="auction_id")})
private List<Auction> auctionList;
}
При создании нового Аукциона иногда мне хочется выбрать существующий Предмет и связать его с новым Аукционом, а иногда и с новым Предметом, который необходимо создать.
Если я использую (cascade=CascadeType.ALL
) отношение, как показано
@ManyToMany(cascade=CascadeType.ALL)
@JoinTable(name = "auction_items", joinColumns = {
@JoinColumn(name = "auction_id", referencedColumnName = "auction_id")}, inverseJoinColumns = {
@JoinColumn(name = "item_id", referencedColumnName = "item_id")})
private List<Item> itemList;
Тогда я не смогу связать существующий предмет с новым экземпляром аукциона, и если я не буду использовать это каскадное отношение, я не смогу создать новый предмет с новым аукционом.
Может ли кто-нибудь дать какие-либо предложения по любой функции Spring, обеспечивающей такую гибкость?