Bonjour,
Je tente de faire une persistance en cascade de cet entité :
En faisant la persistant que celui-ci.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 @Entity @Table(name = "operations") public class Operation implements Serializable { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private Integer seq; private Character sens; private Double montant; @OneToOne(cascade = CascadeType.PERSIST) private Compte compte; // getters, setters constructor.
Je tiens à ajouter que dans L'entité Operation, on a un OneToOne unidirectionnel avec une entité nommé compte qui lui même, est unidirectionnelle OneToOne avec TypeCompte.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 @Entity @Table(name = "transactions") public class Transaction implements Serializable { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String type; private String description; @OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.PERSIST) private Set<Operation> operations; // getters, setters constructor.
Les voici donc.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 @Entity @Table(name="comptes") public class Compte implements Serializable { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String libelle; private Double solde; @OneToOne(cascade = CascadeType.PERSIST) private TypeCompte typeCompte; private static final long serialVersionUID = 1L;Ma question est, lorsque je persiste une entité transaction, ça m'indique que l'entité opération qui est détaché tente de persiter.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 @Entity @Table(name="type_compte") public class TypeCompte implements Serializable { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String libelle; private String numero; private static final long serialVersionUID = 1L;
Alors que j'ai fait ceci.Je sais plus quoi écrire...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 public void doVal(){ TypeCompte tc = new TypeCompte(); tc.setLibelle(compte.getValue()); tc.setNumero("512"); Compte c = new Compte(); c.setTypeCompte(tc); c.setLibelle(compte.getValue()); c.setSolde(150d); Operation o = new Operation(), o1 = new Operation(); o.setCompte(c); o.setId(0l); o.setSeq(Integer.parseInt(seq.getValue())); o.setSens(sens.getValue().charAt(0)); o.setMontant(Double.valueOf(montant.getValue())); Compte c1 = new Compte(); c1.setTypeCompte(tc); c1.setLibelle("SGBS"); c1.setSolde(150d); o1.setCompte(c1); o1.setId(1l); o1.setSeq(Integer.parseInt(seq.getValue())); o1.setSens(sens.getValue().charAt(0)); o1.setMontant(Double.valueOf(montant.getValue())); Set<Operation> set_o = new HashSet<Operation>(); set_o.add(o1); set_o.add(o); Transaction t = new Transaction(); t.setDescription("test transactions"); t.setType(transaction.getValue()); t.setOperations(set_o); tf.create(t); }
Partager