I have an issue with my Hibernate app, I have model as below:
Team.java
@Entity
@Table(name = "TEAM")
public class Team implements Serializable{
private static final long serialVersionUID = 1L;
@Id
@GenericGenerator(name = "antony", strategy = "increment")
@GeneratedValue(generator = "antony")
@Column(name = "TEAM_ID")
int id;
@Column(name = "TEAM_NAME")
String name;
@OneToMany(fetch = FetchType.LAZY, mappedBy = "pk.team")
@Column(name="TEAM_ID")
private Set<TeamMatchReference> teamMatchs = new HashSet<TeamMatchReference>(0);
Match.java
@Entity
@Table(name = "MATCHS")
public class Match implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GenericGenerator(name = "antony", strategy = "increment")
@GeneratedValue(generator = "antony")
@Column(name = "MATCH_ID")
int id;
//........
@OneToMany(fetch = FetchType.LAZY, mappedBy = "pk.match")
@Column(name="MATCH_ID")
private Set<TeamMatchReference> teamMatchs = new HashSet<TeamMatchReference>(0);
TeamMatchId.java
@Embeddable
public class TeamMatchId implements Serializable {
private static final long serialVersionUID = 1L;
@ManyToOne
private Team team;
@ManyToOne
private Match match;
TeamMatchReference .java
@Entity
@Table(name = "team_match_reference")
@AssociationOverrides({
@AssociationOverride(name = "pk.team", joinColumns = @JoinColumn(name = "TEAM_ID")),
@AssociationOverride(name = "pk.match", joinColumns = @JoinColumn(name = "MATCH_ID")) })
public class TeamMatchReference implements Serializable {
private static final long serialVersionUID = 1L;
@EmbeddedId
private TeamMatchId pk;
@Column(name = "BET")
private float bet;
@Column(name = "SCORE")
private Integer score;
Then, I try to add new or update an Match
object. The match
was updated but its children - TeamMatchReference
- were not updated, they're not inserted or deleted when I add or remove from the match.teamMatchReferenceSet
.
Please help to make my code will update - insert and delete - the children when I update and save the match
object.