增加更多join
This commit is contained in:
parent
48cb1003bb
commit
06850823d7
2 changed files with 15 additions and 4 deletions
|
@ -105,8 +105,19 @@ object Query {
|
||||||
expandFields[E](e)
|
expandFields[E](e)
|
||||||
}
|
}
|
||||||
|
|
||||||
inline def leftJoin[E1](inline e1: Query[E1]): Joined[E, E1] =
|
inline def leftJoin[E1](inline e1: Query[E1]): Joined[E, Option[E1]] =
|
||||||
Joined[E, E1](JoinType.LeftJoin, e, e1)
|
Joined[E, Option[E1]](JoinType.LeftJoin, e, e1)
|
||||||
|
|
||||||
|
inline def rightJoin[E1](inline e1: Query[E1]): Joined[Option[E], E1] =
|
||||||
|
Joined[Option[E], E1](JoinType.RightJoin, e, e1)
|
||||||
|
|
||||||
|
inline def join[E1](inline e1: Query[E1]): Joined[E, E1] =
|
||||||
|
Joined[E, E1](JoinType.InnerJoin, e, e1)
|
||||||
|
|
||||||
|
inline def fullJoin[E1](
|
||||||
|
inline e1: Query[E1]
|
||||||
|
): Joined[Option[E], Option[E1]] =
|
||||||
|
Joined[Option[E], Option[E1]](JoinType.FullJoin, e, e1)
|
||||||
|
|
||||||
inline def map[E1](inline f: E => E1): Query[E1] = {
|
inline def map[E1](inline f: E => E1): Query[E1] = {
|
||||||
transform(e)(f)(Map.apply)
|
transform(e)(f)(Map.apply)
|
||||||
|
|
|
@ -7,7 +7,7 @@ import minisql.NamingStrategy
|
||||||
import minisql.MirrorContext
|
import minisql.MirrorContext
|
||||||
import minisql.context.mirror.{*, given}
|
import minisql.context.mirror.{*, given}
|
||||||
|
|
||||||
class QuotedSuite extends munit.FunSuite {
|
class MirrorSqlContextSuite extends munit.FunSuite {
|
||||||
|
|
||||||
case class Foo(id: Long, name: String)
|
case class Foo(id: Long, name: String)
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@ class QuotedSuite extends munit.FunSuite {
|
||||||
|
|
||||||
test("LeftJoin") {
|
test("LeftJoin") {
|
||||||
val o = testContext
|
val o = testContext
|
||||||
.io(Foos.leftJoin(Foos).on((f1, f2) => f1.id == f2.id).map {
|
.io(Foos.join(Foos).on((f1, f2) => f1.id == f2.id).map {
|
||||||
case (f1, f2) => (f1.id, f2.id)
|
case (f1, f2) => (f1.id, f2.id)
|
||||||
})
|
})
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue