Je me demande comment JPA définit pour gérer le scénario suivant:Comment gère JPA JOINs avec une entrée de clé étrangère disponible mais pas d'entrée étrangère disponible?
Table A: | Table B:
ID FK_B | ID
1 10 | 10
2 null | 12
3 11 |
Je veux que tous le tableau A avec entrées FK_B NULL ou référence non disponible Entrée Tableau B.
public class A implements Serializable {
@Id
private Long id;
@JoinColumn(name = "FK_B", nullable = true)
@ManyToOne
private B b;
}
public class B implements Serializable {
@Id
private Long id;
}
Est-il défini, qu'arrive-t-il si j'utilise
SELECT a FROM A a LEFT JOIN a.b WHERE a.b IS NULL
ou: (? Est-ce possible)
SELECT a FROM A a LEFT JOIN B b on (b = a.b) WHERE b IS NULL
Ce que je besoin est une liste contenant
A(id = 2)
A(id = 3)
Merci beaucoup!
Merci beaucoup! Cela fonctionne bien ... – marabol
Je dois apprendre que ce statemant ne fonctionne qu'avec hibernate, mais pas avec toplink ;-) Pour votre instruction toplink, générez cette instruction SQL: SELECT t0.ID, t0.FK_B FROM A t0 , B t1 WHERE (t1.ID IS NULL) eT (t1.ID = t0.FK_B) cela fonctionne bien à la fois mise en veille prolongée et TopLink: SELECT FROM a WHERE IS NULL ab Than TopLink construire cette déclaration : CHOISIR t0.ID, t0.FK_B FROM A t0 O ((t0.FK_B EST NULL) – marabol