seaorm_querylisted
Install: claude install-skill feralbureau/luminy
# seaorm_query
SeaORM is an async, dynamic ORM for Rust built on top of SQLx. It generates Rust entities from your database schema and provides a type-safe query builder. This skill covers patterns for writing correct, efficient SeaORM queries.
## Entity Structure
SeaORM entities are generated (or hand-written) as modules. Each entity has:
```rust
// src/entities/order.rs
use sea_orm::entity::prelude::*;
use serde::{Deserialize, Serialize};
// The entity struct — maps to a table row
#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Serialize, Deserialize)]
#[sea_orm(table_name = "orders")]
pub struct Model {
#[sea_orm(primary_key)]
pub id: i64,
pub user_id: i64,
pub status: String,
pub total: Decimal,
pub created_at: DateTimeWithTimeZone,
pub updated_at: DateTimeWithTimeZone,
}
// Define relationships
#[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)]
pub enum Relation {
#[sea_orm(has_many = "super::order_item::Entity")]
OrderItems,
#[sea_orm(
belongs_to = "super::user::Entity",
from = "Column::UserId",
to = "super::user::Column::Id"
)]
User,
}
impl Related<super::order_item::Entity> for Entity {
fn to() -> RelationDef {
Relation::OrderItems.def()
}
}
impl ActiveModelBehavior for ActiveModel {}
```
## Basic CRUD
### Find by primary key
```rust
use sea_orm::EntityTrait;
let order: Option<order::Model> = Order::find_by_id(order_id)
.one(&db)
.await?;
let order = o