diff --git a/src/entity/base.rs b/src/entity/base.rs index 77914e72..654b235d 100644 --- a/src/entity/base.rs +++ b/src/entity/base.rs @@ -1,7 +1,7 @@ use crate::{ - ColumnTrait, ModelTrait, PrimaryKeyTrait, RelationBuilder, RelationTrait, RelationType, Select, + ColumnTrait, ModelTrait, PrimaryKeyTrait, RelationBuilder, RelationTrait, RelationType, Select, PrimaryKeyOfModel }; -use sea_query::{Expr, Iden, IntoIden, Value}; +use sea_query::{Iden, IntoIden, Value}; use std::fmt::Debug; pub use strum::IntoEnumIterator as Iterable; @@ -65,12 +65,13 @@ pub trait EntityTrait: EntityName { /// ``` fn find_by(v: V) -> Select where - V: Into, + V: Into, Self::PrimaryKey: PrimaryKeyOfModel { let mut select = Self::find(); if let Some(key) = Self::PrimaryKey::iter().next() { // TODO: supporting composite primary key - select = select.filter(Expr::tbl(Self::default(), key).eq(v)); + let col = key.into_column(); + select = select.filter(col.eq(v)); } else { panic!("undefined primary key"); }