Bonjour

J'ai 2 beans (Dossier et Entrée) dont voici les caractéristiques:

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
@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 : 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 = "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 : Sélectionner tout - Visualiser dans une fenêtre à part
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:

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