If I have the configuration like this, can it work?
@ManyToOne(cascade = {CascadeType.PERSIST, CascadeType.MERGE})
@JoinColumn(name = "FOREIGN_ID", nullable = false, insertable = false, updatable = false)
ForeignClass foreignClass;
I think not, because the behaviour of the cascade types is in conflict with the insertable and updatable parameters.
What do you think?
They mean different things and do not conflict with each other.
So given the following mapping :
@Entity
@Table(name="player")
public class Player {
@ManyToOne(cascade = {CascadeType.PERSIST, CascadeType.MERGE})
@JoinColumn(name = "team_id", nullable = false, insertable = false, updatable = false)
Team team;
}
cascade means that when using EntityManager to persist() or merge() on a player , JPA will automatically call persist() / merge() on this player 's team too.
insertable and updatable is about if allow to assign a new team or update the team for a player . In term of the DB table , it is about if the value of Player table 's team_id column is allowed to be inserted or updated.
So one is about inserting/updating records in the Team table while another is about inserting/updating the value of the Player table 's team_id column , which are totally different things.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With