J'ai 2 entités:PersistenceException tout en essayant de cascade persisteront entité enfant
Master:
@Entity
@Table(name = "master")
public class Master implements java.io.Serializable {
@Id
@GeneratedValue(strategy = IDENTITY)
@Column(name = "seq")
private Integer seq;
@OneToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinColumn(name = "seq", referencedColumnName = "seq")
private SubMaster subMaster;
...................
}
Sous Maître:
@Entity
@Table(name = "sub_master")
public class SubMaster implements java.io.Serializable {
@Id
@Column(name = "seq")
private Integer seq;
private String subName;
...................
}
Quand, je suis en train de persister Master
entité en définissant l'entité SubMaster
, je suis suivi exception Par contre, je m'attends à ce que Hibernate conserve automatiquement l'entité enfant à chaque fois que l'entité parente est conservée.
mais, je crois id submaster devrait être le même que master. Cependant, si j'utilise ceci, je reçois une exception (ce que je pense est évident): 'java.sql.SQLException: Le champ 'seq' n'a pas de valeur par défaut' – gschambial
Quel serait le point d'avoir le même identifiant pour tous les deux ? OneToOne va générer une référence de clé étrangère. Si vous souhaitez également joindre l'ID maître, vous devez spécifier une deuxième colonne à joindre et ajouter un attribut id_master dans votre classe sub_master. En outre, vous pouvez désactiver l'entrée null pour l'élément seq à cause de la jointure (il pourrait s'agir de la source de l'exception) – alexay68