Récupérer la valeur d'une clé étrangère en HQL
Bonjour
J'ai 2 beans (Dossier et Entrée) dont voici les caractéristiques:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| @Entity
@Table(name = "DOSSIER")
public class Dossier {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID_DOSSIER", updatable = false, nullable = false)
private long idDossier;
@Column(name = "NUM_DOSSIER", insertable=true, updatable=true, nullable=false)
private String numDossier;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "client_id", nullable = false)
private Client client;
@OneToMany(mappedBy="dossier", cascade = CascadeType.ALL)
private Set<Entree> entrees; |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| @Entity
@Table(name = "ENTREE")
public class Entree {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID_ENTREE", updatable = false, nullable = false)
private long idEntree;
@Column(name = "DATE_ENTREE", insertable=true, updatable=true, nullable=true)
private String dateEntree;
@ManyToOne
@JoinColumn(name="idDossier", nullable=false)
private Dossier dossier; |
Un dossier peut contenir plusieurs entrée.
J'aimerai maintenant afficher le Id de dossier pour une entrée donnée. J'ai donc fait ceci:
Code:
1 2
| @Query("SELECT idDossier FROM Entree WHERE id_entree = :id_entree ")
long findIdDossierByIdEntree(@Param("id_entree") long id_entree); |
Le problème est que je reçois ce message d'erreur:
Citation:
Caused by: java.lang.IllegalArgumentException: Validation failed for query for method public abstract long com.nitraentrepot.repository.EntreeRepository.findIdDossierByIdEntree(long)!
Je pense que c'est dû au fait il n y a pas de getter et setter pour IdDossier dans le bean Dossier.
Donc comment régler ce problème.
Merci