Bonjour,
je suis nouveau dans le domaine de spring, alors je viens vers vous pour vous demander vos conseils sur la bonne façon de faire les choses.
Je souhaiterais récupérer les résultats d'une requête de plusieurs tables sans relations directes (pas de JOIN possible entre leurs attributs) qui peut être représentée sous la forme :
select data1, data2
from table1
union
select data1, data2
from table2
Je connais la façon de faire avec les ResultSet comme ici : http://www.java2s.com/Code/Java/Data...acleDriver.htm
Avec spring data, les tables sont créées sous forme de repository comme le montre l'exemple ici avec la table "Person" :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 public interface PersonRepository extends JpaRepository<Person, Long> { /** * Finds a person by using the last name as a search criteria. * @param lastName * @return A list of persons whose last name is an exact match with the given last name. * If no persons is found, this method returns an empty list. */ @Query("SELECT p FROM Person p WHERE LOWER(p.lastName) = LOWER(:lastName)") public List<Person> find(@Param("lastName") String lastName); }
Après avoir situé le contexte, voici ma question :
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 @Entity public class Customer { @Id @GeneratedValue(strategy=GenerationType.AUTO) private Long id; private String firstName; private String lastName; protected Customer() {} public Customer(String firstName, String lastName) { this.firstName = firstName; this.lastName = lastName; } @Override public String toString() { return String.format( "Customer[id=%d, firstName='%s', lastName='%s']", id, firstName, lastName); } }
Savez-vous comment je pourrais remplacer la façon de faire avec Resultset pour faire cela avec Spring ?
Partager