@@ -2,7 +2,7 @@ pub mod common;
2
2
3
3
pub use common:: { features:: * , setup:: * , TestContext } ;
4
4
use pretty_assertions:: assert_eq;
5
- use sea_orm:: { entity:: prelude:: * , IntoActiveModel , QueryOrder } ;
5
+ use sea_orm:: { entity:: prelude:: * , query :: * , DbBackend , IntoActiveModel , QueryOrder } ;
6
6
7
7
#[ sea_orm_macros:: test]
8
8
#[ cfg( any(
@@ -15,6 +15,8 @@ async fn main() -> Result<(), DbErr> {
15
15
create_tables ( & ctx. db ) . await ?;
16
16
create_metadata ( & ctx. db ) . await ?;
17
17
ctx. delete ( ) . await ;
18
+ find_linked_001 ( ) ;
19
+ find_also_linked_001 ( ) ;
18
20
19
21
Ok ( ( ) )
20
22
}
@@ -87,3 +89,45 @@ pub async fn create_metadata(db: &DatabaseConnection) -> Result<(), DbErr> {
87
89
88
90
Ok ( ( ) )
89
91
}
92
+
93
+ fn find_linked_001 ( ) {
94
+ use self_join:: * ;
95
+
96
+ let self_join_model = Model {
97
+ uuid : Uuid :: default ( ) ,
98
+ uuid_ref : None ,
99
+ time : None ,
100
+ } ;
101
+
102
+ assert_eq ! (
103
+ self_join_model
104
+ . find_linked( SelfReferencingLink )
105
+ . build( DbBackend :: MySql )
106
+ . to_string( ) ,
107
+ [
108
+ r#"SELECT `self_join`.`uuid`, `self_join`.`uuid_ref`, `self_join`.`time`"# ,
109
+ r#"FROM `self_join`"# ,
110
+ r#"INNER JOIN `self_join` AS `r0` ON `r0`.`uuid_ref` = `self_join`.`uuid`"# ,
111
+ r#"WHERE `r0`.`uuid` = '00000000-0000-0000-0000-000000000000'"# ,
112
+ ]
113
+ . join( " " )
114
+ ) ;
115
+ }
116
+
117
+ fn find_also_linked_001 ( ) {
118
+ use self_join:: * ;
119
+
120
+ assert_eq ! (
121
+ Entity :: find( )
122
+ . find_also_linked( SelfReferencingLink )
123
+ . build( DbBackend :: MySql )
124
+ . to_string( ) ,
125
+ [
126
+ r#"SELECT `self_join`.`uuid` AS `A_uuid`, `self_join`.`uuid_ref` AS `A_uuid_ref`, `self_join`.`time` AS `A_time`,"# ,
127
+ r#"`r0`.`uuid` AS `B_uuid`, `r0`.`uuid_ref` AS `B_uuid_ref`, `r0`.`time` AS `B_time`"# ,
128
+ r#"FROM `self_join`"# ,
129
+ r#"LEFT JOIN `self_join` AS `r0` ON `self_join`.`uuid_ref` = `r0`.`uuid`"# ,
130
+ ]
131
+ . join( " " )
132
+ ) ;
133
+ }
0 commit comments