CollectionOfElements - collection is not associated with any session
Bonjour,
J'implémente une application qui vient se greffer sur une DB existante.
J'ai une entité (mappée sur "table_A")qui doit contenir une map de champs venant d'une autre table ("table_B") (qui elle n'est pas mappée @entity).
Pour faire le lien entre ces 2 tables, j'ai dans table_A:
- un champ "code" (qui n'est pas l'id de l'objet mais qui est tout de même unique)
- un champ "sanction"
de l'autre côté (table_B):
- le même code (qui n'est pas l'id dans la table)
- la même sanction
- le code langue
- le libellé
Un entregistrement dans table_B est unique sur:
code, sanction, langue
Ce que je souhaite avoir, c'est:
Dans mon entité "A" (mappée sur table_A),
une map<langue, libellé> dont les valeurs proviennent de table_B et qui correspondent au code et à la sanction de mon objet A.
Voici mon mapping dans man classe :
Code :
Code:
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
|
@Entity
@Table(name = "table_A")
public class A implements Serializable
{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "ID")
private Long id;
@Column(name = "codeA")
private String codeA;
@Column(name = "sanctionA")
private String sanctionA;
@CollectionOfElements(fetch = FetchType.EAGER)
@JoinTable(name = "table_B", joinColumns =
{
@JoinColumn(name = "code", referencedColumnName="codeA"),
@JoinColumn(name = "sanction", referencedColumnName="sanctionA")
})
@MapKey(columns =
{
@Column(name = "langue")
})
@Column(name = "libelle")
private Map<String, String> mapTableBLabels;
...
} |
Malheureusement, quand je tente de récupérer un object A de la DB, j'ai ceci:
Citation:
collection is not associated with any session; nested exception is org.hibernate.HibernateException: collection is not associated with any session
Une idée ?