SeaQL / sea-orm

🐚 An async & dynamic ORM for Rust
https://www.sea-ql.org/SeaORM/
Apache License 2.0
7.03k stars 493 forks source link

[BUG] `DerivePartialModel` attr `entity` not support `syn::Path` token #2113

Open Goodjooy opened 7 months ago

Goodjooy commented 7 months ago

Description

DerivePartialModel will produce error when set entity as path::to::entity::Entity

Steps to Reproduce

  1. prepare an Entity, using cake for example
  2. define the partial model like following
    #[derive(FromQueryResult, DerivePartialModel)]
    #[sea_orm(entity="cake::Entity")]
    struct CakePartial{
    .. // fields
    }
  3. get the macro error :
    error: unexpected token                                                                                                                                                                                                            
    --> src\service\child_statical.rs:48:45
    |
    48 | #[derive(FromQueryResult, DerivePartialModel)]
    |                           ^^^^^^^^^^^^^^^^^^
    |
    = note: this error originates in the derive macro `DerivePartialModel` (in Nightly builds, run with -Z macro-backtrace for more info)

Expected Behavior

the macro should accept the entity as a Path token

Actual Behavior

The macro only accept Ident token

Workarounds

  1. using the Cake in the src/entities/prelude ( the src/entities is the out put dir of the command sea-orm-cli generate entity)
  2. using a local mod use the entity, like following
    mod local_quiz {
            use crate::entities::quizes::Entity;
            use sea_orm::DerivePartialModel;
            use sea_orm::FromQueryResult;
            #[derive(Debug, FromQueryResult, DerivePartialModel)]
            #[sea_orm(entity = "Entity")]
            pub(super) struct Quiz {
                pub(super) qid: i32,
                pub(super) quiz: String,
            }
        }

Versions

????? sea-orm v0.12.12 ?? ????? sea-orm-macros v0.12.12 (proc-macro) ?? ?? ????? sea-bae v0.2.0 (proc-macro) ?? ????? sea-query v0.30.7 ?? ????? sea-query-binder v0.5.0 ?? ?? ????? sea-query v0.30.7 (*)

tyt2y3 commented 7 months ago

A PR would be appreciated!

Goodjooy commented 7 months ago

A PR would be appreciated!

Here is the pr to fix this bug #2137

Goodjooy commented 7 months ago

A PR would be appreciated!

Here is the pr to fix this bug #2137