Docs
This commit is contained in:
parent
abc11753a8
commit
4a9fa29e2d
@ -58,7 +58,10 @@ async fn find_all(db: &Database) -> Result<(), QueryErr> {
|
|||||||
async fn find_together(db: &Database) -> Result<(), QueryErr> {
|
async fn find_together(db: &Database) -> Result<(), QueryErr> {
|
||||||
print!("find cakes and fruits: ");
|
print!("find cakes and fruits: ");
|
||||||
|
|
||||||
let both = cake::Entity::find().left_join_and_select(fruit::Entity).all(db).await?;
|
let both = cake::Entity::find()
|
||||||
|
.left_join_and_select(fruit::Entity)
|
||||||
|
.all(db)
|
||||||
|
.await?;
|
||||||
|
|
||||||
println!();
|
println!();
|
||||||
for bb in both.iter() {
|
for bb in both.iter() {
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
use crate::query::combine;
|
use crate::query::combine;
|
||||||
use crate::{Connection, Database, EntityTrait, FromQueryResult, QueryErr, Select, SelectTwo, Statement};
|
use crate::{
|
||||||
|
Connection, Database, EntityTrait, FromQueryResult, QueryErr, Select, SelectTwo, Statement,
|
||||||
|
};
|
||||||
use sea_query::{QueryBuilder, SelectStatement};
|
use sea_query::{QueryBuilder, SelectStatement};
|
||||||
use std::marker::PhantomData;
|
use std::marker::PhantomData;
|
||||||
|
|
||||||
@ -115,7 +117,10 @@ where
|
|||||||
let builder = db.get_query_builder_backend();
|
let builder = db.get_query_builder_backend();
|
||||||
self.query.limit(1);
|
self.query.limit(1);
|
||||||
let row = db.get_connection().query_one(self.build(builder)).await?;
|
let row = db.get_connection().query_one(self.build(builder)).await?;
|
||||||
Ok((M::from_query_result(&row, combine::SELECT_A)?, N::from_query_result(&row, combine::SELECT_B)?))
|
Ok((
|
||||||
|
M::from_query_result(&row, combine::SELECT_A)?,
|
||||||
|
N::from_query_result(&row, combine::SELECT_B)?,
|
||||||
|
))
|
||||||
}
|
}
|
||||||
|
|
||||||
pub async fn all(self, db: &Database) -> Result<Vec<(M, N)>, QueryErr> {
|
pub async fn all(self, db: &Database) -> Result<Vec<(M, N)>, QueryErr> {
|
||||||
@ -123,7 +128,10 @@ where
|
|||||||
let rows = db.get_connection().query_all(self.build(builder)).await?;
|
let rows = db.get_connection().query_all(self.build(builder)).await?;
|
||||||
let mut models = Vec::new();
|
let mut models = Vec::new();
|
||||||
for row in rows.into_iter() {
|
for row in rows.into_iter() {
|
||||||
models.push((M::from_query_result(&row, combine::SELECT_A)?, N::from_query_result(&row, combine::SELECT_B)?));
|
models.push((
|
||||||
|
M::from_query_result(&row, combine::SELECT_A)?,
|
||||||
|
N::from_query_result(&row, combine::SELECT_B)?,
|
||||||
|
));
|
||||||
}
|
}
|
||||||
Ok(models)
|
Ok(models)
|
||||||
}
|
}
|
||||||
|
@ -71,7 +71,7 @@ where
|
|||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
use crate::tests_cfg::{cake, fruit};
|
use crate::tests_cfg::{cake, fruit};
|
||||||
use crate::{EntityTrait, ColumnTrait, QueryHelper};
|
use crate::{ColumnTrait, EntityTrait, QueryHelper};
|
||||||
use sea_query::MysqlQueryBuilder;
|
use sea_query::MysqlQueryBuilder;
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
@ -7,6 +7,7 @@ use std::rc::Rc;
|
|||||||
pub trait QueryHelper: Sized {
|
pub trait QueryHelper: Sized {
|
||||||
fn query(&mut self) -> &mut SelectStatement;
|
fn query(&mut self) -> &mut SelectStatement;
|
||||||
|
|
||||||
|
/// Clear the selection list
|
||||||
fn select_only(mut self) -> Self {
|
fn select_only(mut self) -> Self {
|
||||||
self.query().clear_selects();
|
self.query().clear_selects();
|
||||||
self
|
self
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
use crate::{
|
use crate::{
|
||||||
ColumnTrait, EntityTrait, Identity, Iterable, ModelTrait, PrimaryKeyOfModel, QueryHelper,
|
ColumnTrait, EntityTrait, Identity, Iterable, ModelTrait, PrimaryKeyOfModel, QueryHelper,
|
||||||
Related, RelationDef, Select, SelectTwo
|
Related, RelationDef, Select, SelectTwo,
|
||||||
};
|
};
|
||||||
|
|
||||||
pub use sea_query::JoinType;
|
pub use sea_query::JoinType;
|
||||||
@ -11,6 +11,7 @@ impl<E> Select<E>
|
|||||||
where
|
where
|
||||||
E: EntityTrait,
|
E: EntityTrait,
|
||||||
{
|
{
|
||||||
|
/// Apply a where condition using the model's primary key
|
||||||
pub fn belongs_to<R>(self, model: &R::Model) -> Self
|
pub fn belongs_to<R>(self, model: &R::Model) -> Self
|
||||||
where
|
where
|
||||||
R: EntityTrait + Related<E>,
|
R: EntityTrait + Related<E>,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user