| Safe Haskell | None |
|---|
Database.Persist.Query
Contents
- class PersistStore m => PersistQuery m where
- update :: (PersistEntity val, PersistEntityBackend val ~ PersistMonadBackend m) => Key val -> [Update val] -> m ()
- updateGet :: (PersistEntity val, PersistMonadBackend m ~ PersistEntityBackend val) => Key val -> [Update val] -> m val
- updateWhere :: (PersistEntity val, PersistEntityBackend val ~ PersistMonadBackend m) => [Filter val] -> [Update val] -> m ()
- deleteWhere :: (PersistEntity val, PersistEntityBackend val ~ PersistMonadBackend m) => [Filter val] -> m ()
- selectSource :: (PersistEntity val, PersistEntityBackend val ~ PersistMonadBackend m) => [Filter val] -> [SelectOpt val] -> Source m (Entity val)
- selectFirst :: (PersistEntity val, PersistEntityBackend val ~ PersistMonadBackend m) => [Filter val] -> [SelectOpt val] -> m (Maybe (Entity val))
- selectKeys :: (PersistEntity val, PersistEntityBackend val ~ PersistMonadBackend m) => [Filter val] -> [SelectOpt val] -> Source m (Key val)
- count :: (PersistEntity val, PersistEntityBackend val ~ PersistMonadBackend m) => [Filter val] -> m Int
- selectList :: (PersistEntity val, PersistQuery m, PersistEntityBackend val ~ PersistMonadBackend m) => [Filter val] -> [SelectOpt val] -> m [Entity val]
- selectKeysList :: (PersistEntity val, PersistQuery m, PersistEntityBackend val ~ PersistMonadBackend m) => [Filter val] -> [SelectOpt val] -> m [Key val]
- deleteCascadeWhere :: (DeleteCascade a m, PersistQuery m) => [Filter a] -> m ()
- data SelectOpt v
- = forall typ . Asc (EntityField v typ)
- | forall typ . Desc (EntityField v typ)
- | OffsetBy Int
- | LimitTo Int
- data Filter v
- = forall typ . PersistField typ => Filter {
- filterField :: EntityField v typ
- filterValue :: Either typ [typ]
- filterFilter :: PersistFilter
- | FilterAnd [Filter v]
- | FilterOr [Filter v]
- | BackendFilter (BackendSpecificFilter (PersistEntityBackend v) v)
- = forall typ . PersistField typ => Filter {
- (=.) :: forall v typ. PersistField typ => EntityField v typ -> typ -> Update v
- (+=.) :: forall v typ. PersistField typ => EntityField v typ -> typ -> Update v
- (-=.) :: forall v typ. PersistField typ => EntityField v typ -> typ -> Update v
- (*=.) :: forall v typ. PersistField typ => EntityField v typ -> typ -> Update v
- (/=.) :: forall v typ. PersistField typ => EntityField v typ -> typ -> Update v
- (==.) :: forall v typ. PersistField typ => EntityField v typ -> typ -> Filter v
- (!=.) :: forall v typ. PersistField typ => EntityField v typ -> typ -> Filter v
- (<.) :: forall v typ. PersistField typ => EntityField v typ -> typ -> Filter v
- (>.) :: forall v typ. PersistField typ => EntityField v typ -> typ -> Filter v
- (<=.) :: forall v typ. PersistField typ => EntityField v typ -> typ -> Filter v
- (>=.) :: forall v typ. PersistField typ => EntityField v typ -> typ -> Filter v
- (<-.) :: forall v typ. PersistField typ => EntityField v typ -> [typ] -> Filter v
- (/<-.) :: forall v typ. PersistField typ => EntityField v typ -> [typ] -> Filter v
- (||.) :: forall v. [Filter v] -> [Filter v] -> [Filter v]
Documentation
class PersistStore m => PersistQuery m whereSource
Methods
update :: (PersistEntity val, PersistEntityBackend val ~ PersistMonadBackend m) => Key val -> [Update val] -> m ()Source
Update individual fields on a specific record.
updateGet :: (PersistEntity val, PersistMonadBackend m ~ PersistEntityBackend val) => Key val -> [Update val] -> m valSource
Update individual fields on a specific record, and retrieve the updated value from the database.
Note that this function will throw an exception if the given key is not found in the database.
updateWhere :: (PersistEntity val, PersistEntityBackend val ~ PersistMonadBackend m) => [Filter val] -> [Update val] -> m ()Source
Update individual fields on any record matching the given criterion.
deleteWhere :: (PersistEntity val, PersistEntityBackend val ~ PersistMonadBackend m) => [Filter val] -> m ()Source
Delete all records matching the given criterion.
selectSource :: (PersistEntity val, PersistEntityBackend val ~ PersistMonadBackend m) => [Filter val] -> [SelectOpt val] -> Source m (Entity val)Source
Get all records matching the given criterion in the specified order. Returns also the identifiers.
selectFirst :: (PersistEntity val, PersistEntityBackend val ~ PersistMonadBackend m) => [Filter val] -> [SelectOpt val] -> m (Maybe (Entity val))Source
get just the first record for the criterion
selectKeys :: (PersistEntity val, PersistEntityBackend val ~ PersistMonadBackend m) => [Filter val] -> [SelectOpt val] -> Source m (Key val)Source
Get the Keys of all records matching the given criterion.
count :: (PersistEntity val, PersistEntityBackend val ~ PersistMonadBackend m) => [Filter val] -> m IntSource
The total number of records fulfilling the given criterion.
Instances
selectList :: (PersistEntity val, PersistQuery m, PersistEntityBackend val ~ PersistMonadBackend m) => [Filter val] -> [SelectOpt val] -> m [Entity val]Source
Call selectSource but return the result as a list.
selectKeysList :: (PersistEntity val, PersistQuery m, PersistEntityBackend val ~ PersistMonadBackend m) => [Filter val] -> [SelectOpt val] -> m [Key val]Source
Call selectKeys but return the result as a list.
deleteCascadeWhere :: (DeleteCascade a m, PersistQuery m) => [Filter a] -> m ()Source
Constructors
| forall typ . Asc (EntityField v typ) | |
| forall typ . Desc (EntityField v typ) | |
| OffsetBy Int | |
| LimitTo Int |
Filters which are available for select, updateWhere and
deleteWhere. Each filter constructor specifies the field being
filtered on, the type of comparison applied (equals, not equals, etc)
and the argument for the comparison.
Constructors
| forall typ . PersistField typ => Filter | |
Fields
| |
| FilterAnd [Filter v] | convenient for internal use, not needed for the API |
| FilterOr [Filter v] | |
| BackendFilter (BackendSpecificFilter (PersistEntityBackend v) v) | |
query combinators
(=.) :: forall v typ. PersistField typ => EntityField v typ -> typ -> Update vSource
assign a field a value
(+=.) :: forall v typ. PersistField typ => EntityField v typ -> typ -> Update vSource
assign a field by addition (+=)
(-=.) :: forall v typ. PersistField typ => EntityField v typ -> typ -> Update vSource
assign a field by subtraction (-=)
(*=.) :: forall v typ. PersistField typ => EntityField v typ -> typ -> Update vSource
assign a field by multiplication (*=)
(/=.) :: forall v typ. PersistField typ => EntityField v typ -> typ -> Update vSource
assign a field by division (/=)
(==.) :: forall v typ. PersistField typ => EntityField v typ -> typ -> Filter vSource
(!=.) :: forall v typ. PersistField typ => EntityField v typ -> typ -> Filter vSource
(<.) :: forall v typ. PersistField typ => EntityField v typ -> typ -> Filter vSource
(>.) :: forall v typ. PersistField typ => EntityField v typ -> typ -> Filter vSource
(<=.) :: forall v typ. PersistField typ => EntityField v typ -> typ -> Filter vSource
(>=.) :: forall v typ. PersistField typ => EntityField v typ -> typ -> Filter vSource
(<-.) :: forall v typ. PersistField typ => EntityField v typ -> [typ] -> Filter vSource
In
(/<-.) :: forall v typ. PersistField typ => EntityField v typ -> [typ] -> Filter vSource
NotIn