Hi all, hope everyone are well!
I'm trying to use the CayenneTemplate class implemented by Malcolm. I
want to use it the following way:
[code]
BaseCayenneTemplate<Veiculo, String> bCT = new
BaseCayenneTemplate<Veiculo, String>(Veiculo.class);
Veiculo entity = new Veiculo();
entity.setPlaca("250-MVU");
entity.setCor("vermelho");
bCT.insert(entity);
Collection<Veiculo> result = bCT.getAll();
[/code]
My implementation isn't complete and maybe doesn't exist any
pattern/optimization on it.
So, I ask you help on it!
Regards,
Gilberto
PS.: Is there the possibility to see this option in click-extras or in
google code?
public class BaseCayenneTemplate<T, PK extends Serializable> extends
CayenneTemplate implements IService<T, PK> {
protected Class<T> classEntity;
public BaseCayenneTemplate(Class<T> classEntity) {
super();
this.classEntity = classEntity;
}
public Class<T> getClassEntity() { return classEntity;}
public Collection<T> getAll() {
Validate.notNull(value, "Null ClassEntity parameter");
SelectQuery query = new SelectQuery(getClassEntity());
return performQuery(query);
}
public boolean find(T entity) {
Validate.notNull(value, "Null Entity parameter");
Validate.notNull(value, "Null ClassEntity parameter");
if (performQuery(new SelectQuery(getClassEntity(), entity)) != null){
}
return
}
public boolean find(PK pk) {
Validate.notNull(value, "Null PK parameter");
Validate.notNull(value, "Null ClassEntity parameter");
if (performQuery(new SelectQuery(getClassEntity(), entity)) != null){
}
return
}
public void insert(T entity) throws InsertException {
Validate.notNull(value, "Null Entity parameter");
if (((Persistent) entity).getObjectContext() == null) {
registerNewObject((DataObject) entity);
}
commitChanges();
}
public void update(T entity) {
Validate.notNull(value, "Null Entity parameter");
if (((Persistent) entity).getObjectContext() == null) {
registerNewObject((DataObject) entity);
}
commitChanges();
}
public void delete(T entity) {
Validate.notNull(value, "Null Entity parameter");
deleteObject((DataObject) entity);
}
public void delete(PK pk) {
Validate.notNull(value, "Null Pk parameter");
deleteObject();
}
public Collection<T> findLike(String likeColumn, String likeValue) {
Validate.notNull(value, "Null ClassEntity parameter");
Validate.notNull(value, "Null likeColumn parameter");
Validate.notNull(value, "Null likeValue parameter");
Expression qual = ExpressionFactory.likeExp(likeColumn, likeValue);
return performQuery(new SelectQuery(getClassEntity(), qual));
}
public Collection<T> findByNamedQuery(String queryName) {
SelectQuery query = new SelectQuery(queryName);
return performQuery(query);
}
}
/**
* General interface for use with the persistence mechanism. Establishes essential method signatures for
* database oparations.
*
* @author Gilberto Caetano de Andrade
*/
public interface IService<T, PK extends Serializable> {
public Class<T> getClassEntity();
/**
* Generic method used to get all entities of a particular class. This particular class is
* defined in the constructor of the implementation of this interface.
*
* @return Collection All entities for this particular class
*/
public Collection<T> getAll();
/**
* Generic method to get an entity
*
* @param entity
* Object to which it returns the search
* @return true object exists and the entity is filled. False otherwise.
*/
public boolean find(T entity);
/**
* Generic method to check the existence of an entity.
*
* @param pk
* Object Identification to check the existence of
* @return true object exists. False otherwise.
*/
public boolean find(PK pk);
/**
* Generic method to insert a new entity.
*
* @param entity
* the new entity.
* @throws InsertException
*/
public void insert(T entity) throws InsertException;
/**
* Generic method to update an entity.
*
* @param entity
* the changed entity.
* @throws ObjectNotExistException
*/
public void update(T entity);
/**
* Generic method to delete an entity. Used with find() method.
*
* @param entity
* the entity to be deleted.
* @throws ObjectNotExistException
*/
public void delete(T entity);
/**
* Generic method to delete an entity. Used with find() method.
*
* @param p?
* the primary key of the entity to be deleted.
* @throws ObjectNotExistException
*/
public void delete(PK pk);
/**
* Generic method that returns a list of entities for a named query
*
* @param queryName
* the named query.
*/
public Collection<T> findByNamedQuery(String queryName);
/**
* Generic method that returns a list of entities for LIKE expression
*
* @param likeColumn
* the field.
* @param likeValue
* the value.
*/
public Collection<T> findLike(String likeColumn, String likeValue);
}