diff --git a/examples/rocket_example/src/main.rs b/examples/rocket_example/src/main.rs index 1a275200..87899d84 100644 --- a/examples/rocket_example/src/main.rs +++ b/examples/rocket_example/src/main.rs @@ -10,7 +10,7 @@ use rocket::{Build, Request, Rocket}; use rocket_db_pools::{sqlx, Connection, Database}; use rocket_dyn_templates::{context, Template}; -use sea_orm::entity::*; +use sea_orm::{entity::*, query::*}; mod pool; use pool::RocketDbPool; @@ -81,7 +81,9 @@ async fn list( ) -> Template { let page = page.unwrap_or(0); let posts_per_page = posts_per_page.unwrap_or(DEFAULT_POSTS_PER_PAGE); - let paginator = Post::find().paginate(&conn, posts_per_page); + let paginator = Post::find() + .order_by_asc(post::Column::Id) + .paginate(&conn, posts_per_page); let num_pages = paginator.num_pages().await.ok().unwrap(); let posts = paginator diff --git a/examples/rocket_example/src/post.rs b/examples/rocket_example/src/post.rs index 0bce0e7a..9a56e271 100644 --- a/examples/rocket_example/src/post.rs +++ b/examples/rocket_example/src/post.rs @@ -1,65 +1,17 @@ use rocket::serde::{Deserialize, Serialize}; use sea_orm::entity::prelude::*; -#[derive(Copy, Clone, Default, Debug, DeriveEntity, Deserialize, Serialize)] -#[serde(crate = "rocket::serde")] -pub struct Entity; - -impl EntityName for Entity { - fn table_name(&self) -> &str { - "posts" - } -} - -#[derive( - Clone, Debug, PartialEq, DeriveModel, DeriveActiveModel, Deserialize, Serialize, FromForm, -)] +#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Deserialize, Serialize, FromForm)] #[serde(crate = "rocket::serde")] +#[sea_orm(table_name = "posts")] pub struct Model { - #[serde(skip_deserializing, skip_serializing_if = "Option::is_none")] - pub id: Option, + #[sea_orm(primary_key)] + pub id: i32, pub title: String, pub text: String, } -#[derive(Copy, Clone, Debug, EnumIter, DeriveColumn)] -pub enum Column { - Id, - Title, - Text, -} - -#[derive(Copy, Clone, Debug, EnumIter, DerivePrimaryKey)] -pub enum PrimaryKey { - Id, -} - -impl PrimaryKeyTrait for PrimaryKey { - type ValueType = i32; - - fn auto_increment() -> bool { - true - } -} - -#[derive(Copy, Clone, Debug, EnumIter)] +#[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)] pub enum Relation {} -impl ColumnTrait for Column { - type EntityName = Entity; - - fn def(&self) -> ColumnDef { - match self { - Self::Id => ColumnType::Integer.def(), - Self::Title => ColumnType::String(None).def(), - Self::Text => ColumnType::String(None).def(), - } - } -} - -impl RelationTrait for Relation { - fn def(&self) -> RelationDef { - panic!() - } -} impl ActiveModelBehavior for ActiveModel {} diff --git a/examples/rocket_example/templates/edit.html.tera b/examples/rocket_example/templates/edit.html.tera index 47882e65..2ccb81a1 100644 --- a/examples/rocket_example/templates/edit.html.tera +++ b/examples/rocket_example/templates/edit.html.tera @@ -5,6 +5,12 @@
+ New Post
+