{"repo":"thma/generic-persistence","free":true,"listed":false,"github":"https://github.com/thma/generic-persistence","clone":"git clone https://github.com/thma/generic-persistence.git","description":"GenericPersistence is a Haskell persistence library for relational databases. The approach relies on GHC.Generics. A real-world demo can be found here:","language":"Haskell","stars":13,"topics":["generics","haskell","orm-library","persistence","reflection","database"],"license":"BSD-3-Clause","category":"databases-storage","readme_excerpt":"GenericPersistence - A Haskell Persistence Layer using Generics Table of Contents - Introduction - Status - Available on Hackage - Short demo - Real world examples - Deal with runtime exceptions or use total functions? Your choice! - Exceptions in the default API - Total functions in the safe API - How it works - Default Behaviour - Customizing The Default Behaviour - Handling enumeration fields - Handling embedded Objects - Handling 1:1 references - Handling 1:N references - Performing queries with the Query DSL - Integrating user defined queries - The Conn ConnectionContext Type - Connection Pooling Introduction GenericPersistence is a small Haskell persistence layer for relational databases. The approach relies on GHC.Generics. The actual database access is provided by the HDBC library. The functional goal of the persistence layer is to provide hassle-free RDBMS persistence for Haskell data types in Record notation (for simplicity I call these Entities ). It therefore provides means for inserting, updating, deleting and querying such entities into/from relational databases. The main design goal is to minimize the boilerplate code required: - no manual instantiation of type classes - no implementation of encoders/decoders - no special naming convention for types and their attributes - no special types to define entities and attributes - no Template Haskell scaffolding of glue code In an ideal world we would be able to take any POHO (Plain old Haskell Object) and persist it ","default_branch":null,"files":null,"tree":[],"storefront":"/r/thma","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/thma/generic-persistence/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}