Popularity
6.0
Growing
Activity
4.0
Growing
319
33
31

Programming language: Scala
Tags: Database    
Latest version: v0.5.0

Scala ActiveRecord alternatives and similar packages

Based on the "Database" category

Do you think we are missing an alternative of Scala ActiveRecord or a related project?

Add another 'Database' Package

README

Scala ActiveRecord maven central javadoc

scala-activerecord is an ORM library for Scala.

This library is inspired by ActiveRecord of Ruby on Rails. It is designed following the CoC(Convention over Configuration), DRY(Don't Repeat Yourself) principles.

Minimal example

Model implementation:

package models

import com.github.aselab.activerecord._
import com.github.aselab.activerecord.dsl._

case class Person(name: String, age: Int) extends ActiveRecord

object Person extends ActiveRecordCompanion[Person]

Schema definition:

package models

import com.github.aselab.activerecord._
import com.github.aselab.activerecord.dsl._

object Tables extends ActiveRecordTables {
  val people = table[Person]
}

ActiveRecord model usage:

import com.github.aselab.activerecord.dsl._
import models._

object App extends App {
  Tables.initialize

  Person("person1", 25).save
  Person("person2", 18).save
  Person("person3", 40).save
  Person("person4", 18).save

  Person.findBy("name", "person1") //=> Some(Person("person1", 25))
  Person.findBy("age", 55) //=> None
  Person.findAllBy("age", 18).toList //=> List(Person("person2", 18), Person("person4", 18))
  Person.where(_.age.~ >= 20).orderBy(_.age desc).toList //=> List(Person("person3", 40), Person("person1", 25))

  Tables.cleanup
}

Schema and query DSL is based on Squeryl.

Features

  • Auto connection management
  • Composable query operation
  • Callback
  • Validation
  • Association

Documents and other resources

Web framework support

License

MIT


*Note that all licence references and agreements mentioned in the Scala ActiveRecord README section above are relevant to that project's source code only.