Ici j'ai deux tables users
et orders
, users
a deux champs first_name
et last_name
et orders
a un champ full_name
. Pour une raison quelconque, je ne peux pas changer le schéma de la base de données.Comment puis-je quitter deux tables non liées en utilisant les critères JPA?
Maintenant, j'ai une requête:
SELECT u.* FROM users u LEFT JOIN orders o ON o.full_name = CONCAT(u.first_name, ' ', u.last_name)
et je dois convertir en spécifications JPA, car il fait partie d'autres spécifications. Voici mon essai:
Entité:
@Entity
@Table(name = "users")
class User {
@Id
private Integer id;
@Column(name = "first_name")
private String firstName;
@Column(name = "last_name")
private String lastName;
}
@Entity
@Table(name = "orders")
class Order {
@Id
private Integer orderId;
@Column(name = "full_name")
private String fullName;
}
Le problème est, que dois-je remplir la déclaration suivante pour le premier paramètre
(root, query, criteraBuilder) -> {
Join<User,Order> join = root.join(???,JoinType.LEFT);
join.on(blablabla_condition)
}
Est-ce faisable?
Merci
Merci. Je n'ai jamais su Joinformula, très intéressant. J'essaierai – haohaolee
Si vous trouvez cette réponse utile, vous pouvez la mettre à l'ouvrage et/ou l'accepter – dimitrisli
Je l'accepterai après l'avoir essayé;) – haohaolee