我在浏览GitHub上的spring-security samples,发现了一个类,它本身就是一个仓库,我们在其中使用了@Query
注解。
- 使用的数据库:高级SQL *
我不太清楚查询的内容,特别是m是什么意思,还有m.to_id = ?#{principal?.id }
这部分,这个符号下面有红线,显示如下信息:Cannot resolve symbol 'm'
代码:
/**
* A repository that integrates with Spring Security for accessing {@link Message}s.
*/
@Repository
public interface SecurityMessageRepository extends MessageRepository {
@Query("SELECT m FROM Message WHERE m.to_id = ?#{principal?.id }")
List<Message> findAll();
}
下面是用于填充初始数据的data.sql
文件(取自示例):
insert into user(id,email,password,firstName,lastName) values (0,'rob@example.com','password','Rob','Winch');
insert into user(id,email,password,firstName,lastName) values (1,'luke@example.com','password','Luke','Taylor');
insert into message(id,created,to_id,summary,text) values (100,'2023-01-05 10:00:00',0,'Hello Rob','This message is for Rob');
insert into message(id,created,to_id,summary,text) values (101,'2023-01-05 11:00:00',0,'How are you Rob?','This message is for Rob');
insert into message(id,created,to_id,summary,text) values (102,'2023-01-05 12:00:00',0,'Is this secure?','This message is for Rob');
insert into message(id,created,to_id,summary,text) values (110,'2023-01-05 10:00:00',1,'Hello Luke','This message is for Luke');
insert into message(id,created,to_id,summary,text) values (111,'2023-01-05 10:00:00',1,'Greetings Luke','This message is for Luke');
insert into message(id,created,to_id,summary,text) values (112,'2023-01-05 10:00:00',1,'Is this secure?','This message is for Luke');
你能解释一下这个SQL表达式是什么意思吗?或者提供一个链接到一些解释这个的文章吗?(因为我甚至不知道如何正确地谷歌它来快速找到答案)。
1条答案
按热度按时间oxalkeyp1#
这个SQL将起作用,m不是表中的列,因此您不能选择它。* 将获得所有列。m用作Message的别名,因此它将与m.to列一起解析。
第一个月