#[derive(FerroModel)]Expand description
Derive macro for reducing SeaORM model boilerplate
Generates create builder, update builder, and convenience methods for Ferro models. Apply to a SeaORM Model struct to get:
Model::query()- Start a new QueryBuilderModel::create()- Get a builder for inserting new recordsmodel.update()- Get an UpdateBuilder for selective field updatesmodel.delete()- Delete the record
§Example
ⓘ
use ferro::FerroModel;
use sea_orm::entity::prelude::*;
#[derive(Clone, Debug, DeriveEntityModel, FerroModel)]
#[sea_orm(table_name = "users")]
pub struct Model {
#[sea_orm(primary_key)]
pub id: i32,
pub name: String,
pub email: String,
pub bio: Option<String>,
}
// Create a new record
let user = User::create()
.set_name("John")
.set_email("john@example.com")
.insert()
.await?;
// Update specific fields only (unchanged fields are not sent to DB)
let updated = user
.update()
.set_name("John Doe")
.set_bio("Developer")
.save()
.await?;
// Clear an optional field to NULL
let updated = updated
.update()
.clear_bio()
.save()
.await?;
// Query records
let users = User::query()
.filter(Column::Name.contains("John"))
.all()
.await?;