diff --git a/src/entity/base.rs b/src/entity/base.rs
index efea8713..1c3478c6 100644
--- a/src/entity/base.rs
+++ b/src/entity/base.rs
@@ -1,6 +1,6 @@
use crate::{
ActiveModelOf, ActiveModelTrait, ColumnTrait, Insert, ModelTrait, OneOrManyActiveModel,
- PrimaryKeyOfModel, PrimaryKeyTrait, QueryHelper, RelationBuilder, RelationTrait, RelationType,
+ PrimaryKeyOfModel, PrimaryKeyTrait, SelectHelper, RelationBuilder, RelationTrait, RelationType,
Select,
};
use sea_query::{Iden, IntoValueTuple};
@@ -102,13 +102,28 @@ pub trait EntityTrait: EntityName {
C: OneOrManyActiveModel,
{
if C::is_one() {
- Insert::new().one(models.get_one())
+ Self::insert_one(models.get_one())
} else if C::is_many() {
- Insert::new().many(models.get_many())
+ Self::insert_many(models.get_many())
} else {
unreachable!()
}
}
+
+ fn insert_one(model: A) -> Insert
+ where
+ A: ActiveModelTrait + ActiveModelOf,
+ {
+ Insert::new().one(model)
+ }
+
+ fn insert_many(models: I) -> Insert
+ where
+ A: ActiveModelTrait + ActiveModelOf,
+ I: IntoIterator-
+ {
+ Insert::new().many(models)
+ }
}
#[cfg(test)]
@@ -124,7 +139,13 @@ mod tests {
..Default::default()
};
assert_eq!(
- cake::Entity::insert(apple)
+ cake::Entity::insert(apple.clone())
+ .build(PostgresQueryBuilder)
+ .to_string(),
+ r#"INSERT INTO "cake" ("name") VALUES ('Apple Pie')"#,
+ );
+ assert_eq!(
+ cake::Entity::insert_one(apple)
.build(PostgresQueryBuilder)
.to_string(),
r#"INSERT INTO "cake" ("name") VALUES ('Apple Pie')"#,
@@ -141,8 +162,15 @@ mod tests {
name: Val::set("Orange Scone".to_owned()),
..Default::default()
};
+ let fruits = vec![apple, orange];
assert_eq!(
- cake::Entity::insert(vec![apple, orange])
+ cake::Entity::insert(fruits.clone())
+ .build(PostgresQueryBuilder)
+ .to_string(),
+ r#"INSERT INTO "cake" ("name") VALUES ('Apple Pie'), ('Orange Scone')"#,
+ );
+ assert_eq!(
+ cake::Entity::insert_many(fruits)
.build(PostgresQueryBuilder)
.to_string(),
r#"INSERT INTO "cake" ("name") VALUES ('Apple Pie'), ('Orange Scone')"#,
diff --git a/src/entity/column.rs b/src/entity/column.rs
index b680565f..cfdb2ef6 100644
--- a/src/entity/column.rs
+++ b/src/entity/column.rs
@@ -57,7 +57,7 @@ pub trait ColumnTrait: IdenStatic + Iterable {
bind_oper!(lte);
/// ```
- /// use sea_orm::{ColumnTrait, EntityTrait, QueryHelper, tests_cfg::cake, sea_query::MysqlQueryBuilder};
+ /// use sea_orm::{ColumnTrait, EntityTrait, SelectHelper, tests_cfg::cake, sea_query::MysqlQueryBuilder};
///
/// assert_eq!(
/// cake::Entity::find()
@@ -75,7 +75,7 @@ pub trait ColumnTrait: IdenStatic + Iterable {
}
/// ```
- /// use sea_orm::{ColumnTrait, EntityTrait, QueryHelper, tests_cfg::cake, sea_query::MysqlQueryBuilder};
+ /// use sea_orm::{ColumnTrait, EntityTrait, SelectHelper, tests_cfg::cake, sea_query::MysqlQueryBuilder};
///
/// assert_eq!(
/// cake::Entity::find()
@@ -93,7 +93,7 @@ pub trait ColumnTrait: IdenStatic + Iterable {
}
/// ```
- /// use sea_orm::{ColumnTrait, EntityTrait, QueryHelper, tests_cfg::cake, sea_query::MysqlQueryBuilder};
+ /// use sea_orm::{ColumnTrait, EntityTrait, SelectHelper, tests_cfg::cake, sea_query::MysqlQueryBuilder};
///
/// assert_eq!(
/// cake::Entity::find()
@@ -108,7 +108,7 @@ pub trait ColumnTrait: IdenStatic + Iterable {
}
/// ```
- /// use sea_orm::{ColumnTrait, EntityTrait, QueryHelper, tests_cfg::cake, sea_query::MysqlQueryBuilder};
+ /// use sea_orm::{ColumnTrait, EntityTrait, SelectHelper, tests_cfg::cake, sea_query::MysqlQueryBuilder};
///
/// assert_eq!(
/// cake::Entity::find()
@@ -123,7 +123,7 @@ pub trait ColumnTrait: IdenStatic + Iterable {
}
/// ```
- /// use sea_orm::{ColumnTrait, EntityTrait, QueryHelper, tests_cfg::cake, sea_query::MysqlQueryBuilder};
+ /// use sea_orm::{ColumnTrait, EntityTrait, SelectHelper, tests_cfg::cake, sea_query::MysqlQueryBuilder};
///
/// assert_eq!(
/// cake::Entity::find()
@@ -139,7 +139,7 @@ pub trait ColumnTrait: IdenStatic + Iterable {
}
/// ```
- /// use sea_orm::{ColumnTrait, EntityTrait, QueryHelper, tests_cfg::cake, sea_query::MysqlQueryBuilder};
+ /// use sea_orm::{ColumnTrait, EntityTrait, SelectHelper, tests_cfg::cake, sea_query::MysqlQueryBuilder};
///
/// assert_eq!(
/// cake::Entity::find()
@@ -155,7 +155,7 @@ pub trait ColumnTrait: IdenStatic + Iterable {
}
/// ```
- /// use sea_orm::{ColumnTrait, EntityTrait, QueryHelper, tests_cfg::cake, sea_query::MysqlQueryBuilder};
+ /// use sea_orm::{ColumnTrait, EntityTrait, SelectHelper, tests_cfg::cake, sea_query::MysqlQueryBuilder};
///
/// assert_eq!(
/// cake::Entity::find()
diff --git a/src/entity/relation.rs b/src/entity/relation.rs
index 6cee53a3..3377cc46 100644
--- a/src/entity/relation.rs
+++ b/src/entity/relation.rs
@@ -1,4 +1,4 @@
-use crate::{EntityTrait, Identity, IntoIdentity, Iterable, QueryHelper, Select};
+use crate::{EntityTrait, Identity, IntoIdentity, Iterable, SelectHelper, Select};
use core::marker::PhantomData;
use sea_query::{Iden, IntoIden, JoinType};
use std::fmt::Debug;
diff --git a/src/query/combine.rs b/src/query/combine.rs
index 757fa3ee..287f96d8 100644
--- a/src/query/combine.rs
+++ b/src/query/combine.rs
@@ -71,7 +71,7 @@ where
#[cfg(test)]
mod tests {
use crate::tests_cfg::{cake, fruit};
- use crate::{ColumnTrait, EntityTrait, QueryHelper};
+ use crate::{ColumnTrait, EntityTrait, SelectHelper};
use sea_query::MysqlQueryBuilder;
#[test]
diff --git a/src/query/helper.rs b/src/query/helper.rs
index d973fe6e..a10168e9 100644
--- a/src/query/helper.rs
+++ b/src/query/helper.rs
@@ -3,7 +3,7 @@ use sea_query::{Alias, Expr, IntoCondition, SelectExpr, SelectStatement, SimpleE
pub use sea_query::{Condition, JoinType, Order};
use std::rc::Rc;
-pub trait QueryHelper: Sized {
+pub trait SelectHelper: Sized {
fn query(&mut self) -> &mut SelectStatement;
/// Clear the selection list
@@ -14,7 +14,7 @@ pub trait QueryHelper: Sized {
/// Add a select column
/// ```
- /// use sea_orm::{ColumnTrait, EntityTrait, QueryHelper, tests_cfg::cake, sea_query::PostgresQueryBuilder};
+ /// use sea_orm::{ColumnTrait, EntityTrait, SelectHelper, tests_cfg::cake, sea_query::PostgresQueryBuilder};
///
/// assert_eq!(
/// cake::Entity::find()
@@ -35,7 +35,7 @@ pub trait QueryHelper: Sized {
/// Add a select column with alias
/// ```
- /// use sea_orm::{ColumnTrait, EntityTrait, QueryHelper, tests_cfg::cake, sea_query::PostgresQueryBuilder};
+ /// use sea_orm::{ColumnTrait, EntityTrait, SelectHelper, tests_cfg::cake, sea_query::PostgresQueryBuilder};
///
/// assert_eq!(
/// cake::Entity::find()
@@ -59,7 +59,7 @@ pub trait QueryHelper: Sized {
/// Add an AND WHERE expression
/// ```
- /// use sea_orm::{ColumnTrait, EntityTrait, QueryHelper, tests_cfg::cake, sea_query::MysqlQueryBuilder};
+ /// use sea_orm::{ColumnTrait, EntityTrait, SelectHelper, tests_cfg::cake, sea_query::MysqlQueryBuilder};
///
/// assert_eq!(
/// cake::Entity::find()
@@ -73,7 +73,7 @@ pub trait QueryHelper: Sized {
///
/// Add a condition tree.
/// ```
- /// use sea_orm::{Condition, ColumnTrait, EntityTrait, QueryHelper, tests_cfg::cake, sea_query::MysqlQueryBuilder};
+ /// use sea_orm::{Condition, ColumnTrait, EntityTrait, SelectHelper, tests_cfg::cake, sea_query::MysqlQueryBuilder};
///
/// assert_eq!(
/// cake::Entity::find()
@@ -97,7 +97,7 @@ pub trait QueryHelper: Sized {
/// Add a group by column
/// ```
- /// use sea_orm::{ColumnTrait, EntityTrait, QueryHelper, tests_cfg::cake, sea_query::PostgresQueryBuilder};
+ /// use sea_orm::{ColumnTrait, EntityTrait, SelectHelper, tests_cfg::cake, sea_query::PostgresQueryBuilder};
///
/// assert_eq!(
/// cake::Entity::find()
@@ -119,7 +119,7 @@ pub trait QueryHelper: Sized {
/// Add an order_by expression
/// ```
- /// use sea_orm::{EntityTrait, Order, QueryHelper, tests_cfg::cake, sea_query::MysqlQueryBuilder};
+ /// use sea_orm::{EntityTrait, Order, SelectHelper, tests_cfg::cake, sea_query::MysqlQueryBuilder};
///
/// assert_eq!(
/// cake::Entity::find()
@@ -140,7 +140,7 @@ pub trait QueryHelper: Sized {
/// Add an order_by expression (ascending)
/// ```
- /// use sea_orm::{EntityTrait, QueryHelper, tests_cfg::cake, sea_query::MysqlQueryBuilder};
+ /// use sea_orm::{EntityTrait, SelectHelper, tests_cfg::cake, sea_query::MysqlQueryBuilder};
///
/// assert_eq!(
/// cake::Entity::find()
@@ -161,7 +161,7 @@ pub trait QueryHelper: Sized {
/// Add an order_by expression (descending)
/// ```
- /// use sea_orm::{EntityTrait, QueryHelper, tests_cfg::cake, sea_query::MysqlQueryBuilder};
+ /// use sea_orm::{EntityTrait, SelectHelper, tests_cfg::cake, sea_query::MysqlQueryBuilder};
///
/// assert_eq!(
/// cake::Entity::find()
diff --git a/src/query/join.rs b/src/query/join.rs
index 24088a04..7f841131 100644
--- a/src/query/join.rs
+++ b/src/query/join.rs
@@ -1,5 +1,5 @@
use crate::{
- ColumnTrait, EntityTrait, Iterable, ModelTrait, PrimaryKeyOfModel, QueryHelper, Related,
+ ColumnTrait, EntityTrait, Iterable, ModelTrait, PrimaryKeyOfModel, SelectHelper, Related,
Select, SelectTwo,
};
pub use sea_query::JoinType;
@@ -71,7 +71,7 @@ where
#[cfg(test)]
mod tests {
use crate::tests_cfg::{cake, filling, fruit};
- use crate::{ColumnTrait, EntityTrait, QueryHelper};
+ use crate::{ColumnTrait, EntityTrait, SelectHelper};
use sea_query::MysqlQueryBuilder;
#[test]
diff --git a/src/query/select.rs b/src/query/select.rs
index 54e25e77..4ee721f4 100644
--- a/src/query/select.rs
+++ b/src/query/select.rs
@@ -1,4 +1,4 @@
-use crate::{ColumnTrait, EntityTrait, Iterable, QueryHelper, Statement};
+use crate::{ColumnTrait, EntityTrait, Iterable, SelectHelper, Statement};
use core::fmt::Debug;
use core::marker::PhantomData;
pub use sea_query::JoinType;
@@ -28,7 +28,7 @@ pub trait IntoSimpleExpr {
fn into_simple_expr(self) -> SimpleExpr;
}
-impl QueryHelper for Select
+impl SelectHelper for Select
where
E: EntityTrait,
{
@@ -37,7 +37,7 @@ where
}
}
-impl QueryHelper for SelectTwo
+impl SelectHelper for SelectTwo
where
E: EntityTrait,
F: EntityTrait,