Powerful CRUD & DAO implementation with REST interface for play framework 2.x
For the Typesafe Activator check play2-crud-activator.
Follow these steps to use play2-crud. You can also use it partially just for DAO or CRUD controllers. If you think any part needs further explanation, please report a new issue.
You can begin with adding play2-crud dependency inside conf/Build.scala
file.
- Add app dependency:
val appDependencies = Seq(
javaCore, javaJdbc, javaEbean,
"play2-crud" % "play2-crud_2.10" % "0.7.0"
)
-
Dependency version is for version 0.7.0 defined, but you can use the latest version.
-
Add custom maven repositories:
val main = play.Project(appName, appVersion, appDependencies).settings(
//maven repository
resolvers += "release repository" at "http://hakandilek.github.com/maven-repo/releases/",
resolvers += "snapshot repository" at "http://hakandilek.github.com/maven-repo/snapshots/"
)
If you don't want to override the play application launcher, you just have to notice to play that the class to use as launcher is now GlobalCRUDSettings. Change the application.global
configuration key in the conf/application.conf
file, and use play.utils.crud.GlobalCRUDSettings
:
...
application.global=play.utils.crud.GlobalCRUDSettings
...
# CRUD Controllers
-> /app play.crud.Routes
# REST API
-> /api play.rest.Routes
- Model class has to implement
play.utils.dao.BasicModel
with the type parameter indicating the type of the@Id
field.
@Entity
public class Sample extends Model implements BasicModel<Long> {
@Id
private Long key;
@Basic
@Required
private String name;
public Long getKey() {
return key;
}
public void setKey(Long key) {
this.key = key;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
- Here the
Sample
model class implementsBasicModel<Long>
wherekey
field indicated with@Id
isLong
.
... call http://localhost:9000/app and voila!
- Sample with basic dynamic CRUD controllers
- Sample with custom views is a full featured sample.
- Full featured sample with DAO and DAOListeners
- Sample with Cache usage
Here you can find some HOW-TO documents introducing some powerful functionality: