diff --git a/sea-orm-macros/src/derives/active_model.rs b/sea-orm-macros/src/derives/active_model.rs index 241d9536..30ca937f 100644 --- a/sea-orm-macros/src/derives/active_model.rs +++ b/sea-orm-macros/src/derives/active_model.rs @@ -36,8 +36,6 @@ pub fn expand_derive_active_model(ident: Ident, data: Data) -> syn::Result),* } - impl sea_orm::ActiveModelOf for ActiveModel {} - impl From<#ident> for ActiveModel { fn from(m: #ident) -> Self { Self { diff --git a/src/entity/active_model.rs b/src/entity/active_model.rs index b18a0c09..714c8ca9 100644 --- a/src/entity/active_model.rs +++ b/src/entity/active_model.rs @@ -44,12 +44,6 @@ where ActiveValue::unchanged(value) } -pub trait ActiveModelOf -where - E: EntityTrait, -{ -} - pub trait ActiveModelTrait: Clone + Debug + Default { type Entity: EntityTrait; diff --git a/src/entity/base.rs b/src/entity/base.rs index 3f9c680d..48583362 100644 --- a/src/entity/base.rs +++ b/src/entity/base.rs @@ -1,5 +1,5 @@ use crate::{ - ActiveModelOf, ActiveModelTrait, ColumnTrait, FromQueryResult, Insert, ModelTrait, + ActiveModelTrait, ColumnTrait, FromQueryResult, Insert, ModelTrait, OneOrManyActiveModel, PrimaryKeyToColumn, PrimaryKeyTrait, QueryFilter, RelationBuilder, RelationTrait, RelationType, Select, }; @@ -98,7 +98,7 @@ pub trait EntityTrait: EntityName { fn insert(models: C) -> Insert where - A: ActiveModelTrait + ActiveModelOf, + A: ActiveModelTrait, C: OneOrManyActiveModel, { if C::is_one() { @@ -112,14 +112,14 @@ pub trait EntityTrait: EntityName { fn insert_one(model: A) -> Insert where - A: ActiveModelTrait + ActiveModelOf, + A: ActiveModelTrait, { Insert::new().one(model) } fn insert_many(models: I) -> Insert where - A: ActiveModelTrait + ActiveModelOf, + A: ActiveModelTrait, I: IntoIterator, { Insert::new().many(models) diff --git a/src/entity/prelude.rs b/src/entity/prelude.rs index 9ebfca73..6e26318e 100644 --- a/src/entity/prelude.rs +++ b/src/entity/prelude.rs @@ -1,5 +1,5 @@ pub use crate::{ - ActiveModelOf, ActiveModelTrait, ColumnTrait, ColumnType, DeriveActiveModel, DeriveColumn, + ActiveModelTrait, ColumnTrait, ColumnType, DeriveActiveModel, DeriveColumn, DeriveEntity, DeriveModel, DerivePrimaryKey, EntityName, EntityTrait, EnumIter, Iden, IdenStatic, ModelTrait, PrimaryKeyToColumn, PrimaryKeyTrait, QueryFilter, QueryResult, Related, RelationDef, RelationTrait, Select, TypeErr, Value, diff --git a/src/query/insert.rs b/src/query/insert.rs index cdf5ede8..5051a1fc 100644 --- a/src/query/insert.rs +++ b/src/query/insert.rs @@ -1,4 +1,4 @@ -use crate::{ActiveModelOf, ActiveModelTrait, EntityTrait, Iterable, QueryTrait}; +use crate::{ActiveModelTrait, EntityTrait, Iterable, QueryTrait}; use core::marker::PhantomData; use sea_query::{InsertStatement, IntoIden}; @@ -12,18 +12,23 @@ where pub(crate) model: PhantomData, } +impl Default for Insert +where + A: ActiveModelTrait +{ + fn default() -> Self { + Self::new() + } +} + impl Insert where A: ActiveModelTrait, { - pub fn new() -> Self - where - E: EntityTrait, - A: ActiveModelOf, - { + pub fn new() -> Self { Self { query: InsertStatement::new() - .into_table(E::default().into_iden()) + .into_table(A::Entity::default().into_iden()) .to_owned(), columns: Vec::new(), model: PhantomData,