我对 JPQL 有以下问题:一个类有三个字段:
public class Message{
Integer ownerId;
Integer fromUserId;
Integer toUserId;
//rest of implementation
}
然后我想通过用户名在数据库中搜索,但是我们有 3 个用户附加到此消息:所有者、收件人和发件人,所以我在 SQL 中所做的是:
SELECT * FROM message m
LEFT JOIN user o ON m.owner_id=o.id
LEFT JOIN user fu ON m.from_user_id = fu.id
LEFT JOIN user tu ON m.to_user_id = tu.id
WHERE o.name like '%foo%' OR fu.name like '%foo%' OR tu.name like '%foo%';
这可能不是最快的查询,但工作正常。然后我想把它翻译成JPQL,但这并不容易。我在“on”令牌上遇到异常,我知道如果该类定义了与另一个类的关系,则可以加入,但这里的关系有点复杂,因为我们有 3 个用户与一个消息相关。任何想法如何解决这个问题?