コメントですでに答えが見つかったとしても、完全な例を挙げたいと思います。
モデルがあるとするとPerson
、次の関数は、指定されたID(存在する場合)を持つパーションのレコードを返します。
import Database.Persist.Types (PersistValue(PersistInt64))
getByIntId :: Integral i => i -> Handler (Maybe Person)
getByIntId i = runDB $ get $ Key $ PersistInt64 (fromIntegral i)
はimport
、整数の永続バージョンを作成できるようにするために必要です。fromIntegral
任意の整数を期待される型に変換しますInt64
。
更新:Yesod 1.2PersistValue
はモジュールDatabase.Persist.Types
に存在するため、1.2より前は存在していましたDatabase.Persist.Store
(APIドキュメント)。
アップデート2:Persistent 2.0.2以降、データベースキーとの間で変換する2つの組み込み関数があります:toSqlKey
およびfromSqlKey
(APIドキュメント、例についてはhhefestoによる回答を参照してください)。