diff --git a/src/entity/base.rs b/src/entity/base.rs index 47dad08f..2de70d83 100644 --- a/src/entity/base.rs +++ b/src/entity/base.rs @@ -1,7 +1,7 @@ use crate::{ ActiveModelTrait, ColumnTrait, FromQueryResult, Insert, ModelTrait, OneOrManyActiveModel, PrimaryKeyToColumn, PrimaryKeyTrait, QueryFilter, RelationBuilder, RelationTrait, RelationType, - Select, + Select, Update, }; use sea_query::{Iden, IntoValueTuple}; use std::fmt::Debug; @@ -22,18 +22,18 @@ pub trait EntityTrait: EntityName { type PrimaryKey: PrimaryKeyTrait + PrimaryKeyToColumn; - fn has_one(entity: R) -> RelationBuilder + fn has_one(related: R) -> RelationBuilder where R: EntityTrait, { - RelationBuilder::new(RelationType::HasOne, Self::default(), entity) + RelationBuilder::new(RelationType::HasOne, Self::default(), related) } - fn has_many(entity: R) -> RelationBuilder + fn has_many(related: R) -> RelationBuilder where R: EntityTrait, { - RelationBuilder::new(RelationType::HasMany, Self::default(), entity) + RelationBuilder::new(RelationType::HasMany, Self::default(), related) } /// ``` @@ -113,7 +113,7 @@ pub trait EntityTrait: EntityName { /// Insert many /// ``` /// use sea_orm::{entity::*, query::*, tests_cfg::cake, sea_query::PostgresQueryBuilder}; - /// + /// /// let apple = cake::ActiveModel { /// name: Val::set("Apple Pie".to_owned()), /// ..Default::default() @@ -166,7 +166,7 @@ pub trait EntityTrait: EntityName { /// ``` /// use sea_orm::{entity::*, query::*, tests_cfg::cake, sea_query::PostgresQueryBuilder}; - /// + /// /// let apple = cake::ActiveModel { /// name: Val::set("Apple Pie".to_owned()), /// ..Default::default() @@ -189,4 +189,26 @@ pub trait EntityTrait: EntityName { { Insert::new().many(models) } + + /// ``` + /// use sea_orm::{entity::*, query::*, tests_cfg::fruit, sea_query::PostgresQueryBuilder}; + /// + /// let orange = fruit::ActiveModel { + /// id: Val::set(1), + /// name: Val::set("Orange".to_owned()), + /// ..Default::default() + /// }; + /// assert_eq!( + /// fruit::Entity::update(orange) + /// .build(PostgresQueryBuilder) + /// .to_string(), + /// r#"UPDATE "fruit" SET "name" = 'Orange' WHERE "fruit"."id" = 1"#, + /// ); + /// ``` + fn update(model: A) -> Update + where + A: ActiveModelTrait, + { + Update::new(model) + } }