public class QueryBuilder
extends java.lang.Object
JqlQuery,
executed with Javers.findChanges(JqlQuery) and Javers.findSnapshots(JqlQuery)| Modifier and Type | Method and Description |
|---|---|
protected void |
addFilter(org.javers.repository.jql.Filter filter) |
QueryBuilder |
andProperty(java.lang.String propertyName)
Filters to snapshots with a given property on changed properties list.
|
JqlQuery |
build() |
static QueryBuilder |
byClass(java.lang.Class requiredClass) |
static QueryBuilder |
byGlobalIdDTO(GlobalIdDTO globalId)
Deprecated.
|
static QueryBuilder |
byInstanceId(java.lang.Object localId,
java.lang.Class entityClass) |
static QueryBuilder |
byValueObject(java.lang.Class ownerEntityClass,
java.lang.String path)
Query for selecting changes (or snapshots)
made on all ValueObjects at given path, owned by any instance of given Entity.
|
static QueryBuilder |
byValueObjectId(java.lang.Object ownerLocalId,
java.lang.Class ownerEntityClass,
java.lang.String path)
Query for selecting changes (or snapshots) made on a concrete ValueObject
(so a ValueObject owned by a concrete Entity instance).
|
protected java.util.List<org.javers.repository.jql.Filter> |
getFilters() |
protected int |
getLimit() |
QueryBuilder |
limit(int limit)
Limits number of snapshots to be read from JaversRepository, default is 100.
|
QueryBuilder |
withNewObjectChanges(boolean newObjectChanges)
Affects changes query only.
|
public static QueryBuilder byClass(java.lang.Class requiredClass)
public static QueryBuilder byInstanceId(java.lang.Object localId, java.lang.Class entityClass)
public static QueryBuilder byValueObject(java.lang.Class ownerEntityClass, java.lang.String path)
byValueObjectId(Object, Class, String).public static QueryBuilder byValueObjectId(java.lang.Object ownerLocalId, java.lang.Class ownerEntityClass, java.lang.String path)
class Employee {
@Id String name;
Address primaryAddress;
}
...
javers.findChanges( QueryBuilder.byValueObjectId("bob", Employee.class, "primaryAddress").build() );
When ValueObject is stored in a List, use propertyName and list index separated by "/", for example:
class Employee {
@Id String name;
List<Address> addresses;
}
...
javers.findChanges( QueryBuilder.byValueObjectId("bob", Employee.class, "addresses/0").build() );
When ValueObject is stored as a Map value, use propertyName and map key separated by "/", for example:
class Employee {
@Id String name;
Map<String,Address> addressMap;
}
...
javers.findChanges( QueryBuilder.byValueObjectId("bob", Employee.class, "addressMap/HOME").build() );
@Deprecated public static QueryBuilder byGlobalIdDTO(GlobalIdDTO globalId)
public QueryBuilder andProperty(java.lang.String propertyName)
CdoSnapshot.getChanged()public QueryBuilder withNewObjectChanges(boolean newObjectChanges)
public QueryBuilder limit(int limit)
protected void addFilter(org.javers.repository.jql.Filter filter)
protected java.util.List<org.javers.repository.jql.Filter> getFilters()
protected int getLimit()
public JqlQuery build()