package org.nutz.service;
import org.nutz.dao.Cnd;
import org.nutz.dao.Dao;
import org.nutz.dao.entity.EntityField;
/**
* 针对标注了@Name的实体的Service
* @author wendal(wendal1985@gmail.com)
*
* @param <T> 实体的类型
*/
public abstract class NameEntityService<T> extends EntityService<T> {
/**
* @see EntityService
*/
public NameEntityService() {
super();
}
/**
* @see EntityService
*/
public NameEntityService(Dao dao) {
super(dao);
}
/**
* @see EntityService
*/
public NameEntityService(Dao dao, Class<T> entityType) {
super(dao, entityType);
}
/**
* 根据@Name所在的属性的值删除一条记录
* @param name 属性的值
* @return 删除的记录数,通常是0或者1
*/
public int delete(String name) {
return dao().delete(getEntityClass(), name);
}
/**
* 根据@Name所在的属性的值获取一个实体对象
* @param name 属性的值
* @return 实体对象,若没有符合条件的记录,则返回null
*/
public T fetch(String name) {
return dao().fetch(getEntityClass(), name);
}
/**
* 是否存在@Name所在的属性与指定值相符的记录
* @param name 属性的值
* @return true,如果存在符合条件的记录
*/
public boolean exists(String name) {
EntityField ef = getEntity().getNameField();
if (null == ef)
return false;
return dao().count(getEntityClass(), Cnd.where(ef.getName(), "=", name)) > 0;
}
}