具有多个表的方法查询,包括排序?
Method query with multiple tables including ordering?
我不确定这个任务是否达到了方法查询的边界。
我有两个 table,一个 User
table 和一个 Password
table。一个 User
可能有多个 Password
(最新的是当前的)。
我想在我的 User
存储库中进行方法查询以获取用户名的 "current" Password
。
在 SQL 中看起来像这样
"Select FIRST(*) from Passwords INNERJOIN Users ON Users.id=Passwords.userId WHERE Users.username=%s ORDER BY Passwords.created DESC"
我试过的方法查询是findFirstPasswordOrderByPasswords_CreatedByUsers_Username(String username)
这给了我一个例外:
No property byUsers found for type long! Traversed path: UsersEntity.passwords.created.
不知道为什么还是指向created
字段。
这对于方法查询来说太多了吗?还是我做错了?
您应该在搜索密码时在密码存储库中定义此方法。在该存储库中,此方法将如下所示:
Passwords findFirstByUser_UsernameOrderByCreatedDesc(String username);
要实施此方法,您的密码实体 class 应该引用用户 属性 上的用户 table(来自查询)
我不确定这个任务是否达到了方法查询的边界。
我有两个 table,一个 User
table 和一个 Password
table。一个 User
可能有多个 Password
(最新的是当前的)。
我想在我的 User
存储库中进行方法查询以获取用户名的 "current" Password
。
在 SQL 中看起来像这样
"Select FIRST(*) from Passwords INNERJOIN Users ON Users.id=Passwords.userId WHERE Users.username=%s ORDER BY Passwords.created DESC"
我试过的方法查询是findFirstPasswordOrderByPasswords_CreatedByUsers_Username(String username)
这给了我一个例外:
No property byUsers found for type long! Traversed path: UsersEntity.passwords.created.
不知道为什么还是指向created
字段。
这对于方法查询来说太多了吗?还是我做错了?
您应该在搜索密码时在密码存储库中定义此方法。在该存储库中,此方法将如下所示:
Passwords findFirstByUser_UsernameOrderByCreatedDesc(String username);
要实施此方法,您的密码实体 class 应该引用用户 属性 上的用户 table(来自查询)