Package io.ebean
Class Finder<I,T>
java.lang.Object
io.ebean.Finder<I,T>
public class Finder<I,T> extends Object
Intended to be used as a base class for 'Finder' implementations that can then
be injected or used as public static fields on the associated entity bean.
These 'finders' are a place to organise all the finder methods for that bean type and specific finder methods are expected to be added (find by unique properties etc).
Testing
For testing the mocki-ebean project has the ability to replace the finder implementation.
public class CustomerFinder extends Finder<Long,Customer> {
public CustomerFinder() {
super(Customer.class);
}
// Add finder methods ...
public Customer byName(String name) {
return query().eq("name", name).findOne();
}
public List<Customer> findNew() {
return query().where()
.eq("status", Customer.Status.NEW)
.order("name")
.findList()
}
}
@Entity
public class Customer extends BaseModel {
public static final CustomerFinder find = new CustomerFinder();
...
}
When the Finder is registered as a field on Customer it can then be used like:
Customer rob = Customer.find.byName("Rob");
-
Constructor Summary
-
Method Summary
Modifier and Type Method Description List<T>all()Retrieves all entities of the given type.TbyId(I id)Retrieves an entity by ID.TransactioncurrentTransaction()Return the current transaction.Databasedb()Return the Database this finder will use.Databasedb(String databaseName)Return typically a different Database to the default.voiddeleteById(I id)Delete a bean by Id.voidflush()Flush the JDBC batch on the current transaction.Query<T>nativeSql(String nativeSql)Creates a native sql query.Query<T>query()Creates a query.Query<T>query(String ormQuery)Creates a query using the ORM query language.Tref(I id)Creates an entity reference for this ID.UpdateQuery<T>update()Creates an update query.
-
Constructor Details
-
Finder
Create with the type of the entity bean.public class CustomerFinder extends Finder<Customer> { public CustomerFinder() { super(Customer.class); } // ... add extra customer specific finder methods } @Entity public class Customer extends BaseModel { public static final CustomerFinder find = new CustomerFinder(); ... } -
Finder
Create with the type of the entity bean and specific database name.
-
-
Method Details
-
currentTransaction
Return the current transaction. -
flush
Flush the JDBC batch on the current transaction. -
db
Return the Database this finder will use. -
db
Return typically a different Database to the default.This is equivalent to
DB.byName(String)- Parameters:
databaseName- The name of the Database. If this is null then the default database is returned.
-
ref
Creates an entity reference for this ID.Equivalent to
Database.getReference(Class, Object) -
byId
Retrieves an entity by ID.Equivalent to
Database.find(Class, Object) -
deleteById
Delete a bean by Id.Equivalent to
Database.delete(Class, Object) -
all
Retrieves all entities of the given type. -
update
Creates an update query.int rows = finder.update() .set("status", Customer.Status.ACTIVE) .set("updtime", new Timestamp(System.currentTimeMillis())) .where() .gt("id", 1000) .update();Equivalent to
Database.update(Class) -
query
Creates a query.Equivalent to
Database.find(Class) -
nativeSql
Creates a native sql query. -
query
Creates a query using the ORM query language.
-