public abstract class BaseDaoImpl<T extends Serializable,PK extends Serializable> extends Object
| 限定符和类型 | 字段和说明 |
|---|---|
protected Map<String,String> |
filterField |
protected static org.slf4j.Logger |
logger |
protected org.hibernate.SessionFactory |
sessionFactory |
| 构造器和说明 |
|---|
BaseDaoImpl() |
| 限定符和类型 | 方法和说明 |
|---|---|
com.centit.support.database.utils.QueryAndNamedParams |
builderHqlAndNamedParams(String shql,
Map<String,Object> filterDesc) |
static com.centit.support.database.utils.QueryAndNamedParams |
builderHqlAndNamedParams(String shql,
Map<String,Object> filterDesc,
Map<String,String> filterFieldDesc)
创建一个查询语句 和 条件
|
com.centit.support.database.utils.QueryAndNamedParams |
builderStatHqlAndNamedParams(String shql,
Map<String,Object> filterDesc)
创建一个 统计分析语句的 From 和 where 部分 不能包括 order by
|
void |
deleteObject(T o) |
void |
deleteObjectById(PK id) |
void |
deleteObjectForce(T o) |
void |
deleteObjectForceById(PK id) |
void |
deleteObjectsAsTabulation(Collection<T> dbObjects)
批量删除记录
|
void |
deleteObjectsAsTabulation(Map<String,Object> properties)
批量删除记录 根据复合外键查询
|
void |
deleteObjectsAsTabulation(String propertyName,
Object propertyValue)
批量删除记录 根据单独外键查询
|
void |
flush()
将对持久化对象的修改触发update数据库
|
String |
getClassTName()
获取泛型参数对象全称
|
String |
getClassTShortName()
获取泛型参数对象名称
|
org.hibernate.Session |
getCurrentSession()
获取当前事务上下文环境 session
|
Map<String,String> |
getFilterField() |
static Map<String,org.apache.commons.lang3.tuple.Pair<String,String[]>> |
getFilterFieldWithPretreatment(Map<String,String> fieldMap) |
T |
getObjectById(PK id) |
T |
getObjectByProperties(Map<String,Object> properties) |
T |
getObjectByProperty(String propertyName,
Object propertyValue) |
Class<?> |
getPkClass()
获取泛型参数对象的主键类型
|
Class<?> |
getPoClass() |
static Object |
getPoObjectId(Object poObj)
通过注解 @Id 或者 @EmbeddedId 获得主键
|
org.hibernate.SessionFactory |
getSessionFactory() |
List<T> |
listObjectByProperties(Map<String,Object> properties) |
List<T> |
listObjectByProperty(String propertyName,
Object propertyValue) |
List<T> |
listObjects() |
List<T> |
listObjects(Map<String,Object> filterDesc) |
List<T> |
listObjects(Map<String,Object> filterMap,
com.centit.support.database.utils.PageDesc pageDesc) |
List<T> |
listObjects(String hql) |
List<T> |
listObjects(String shql,
Map<String,Object> filterDesc) |
List<T> |
listObjects(String shql,
Map<String,Object> filterDesc,
com.centit.support.database.utils.PageDesc pageDesc) |
List<T> |
listObjects(String shql,
Object value) |
List<T> |
listObjects(String shql,
Object[] values) |
List<T> |
listObjects(String shql,
Object[] values,
com.centit.support.database.utils.PageDesc pageDesc) |
List<T> |
listObjects(String shql,
Object value,
com.centit.support.database.utils.PageDesc pageDesc) |
List<T> |
listObjects(String shql,
com.centit.support.database.utils.PageDesc pageDesc) |
List<T> |
listObjectsAll() |
List<T> |
listObjectsByNamedHql(String shql,
Map<String,Object> params,
int startPos,
int maxSize) |
List<T> |
listValidObjects() |
void |
mergeObject(T o) |
int |
pageCount(Map<String,Object> filterMap) |
int |
pageCount(String sHql,
Map<String,Object> filterMap)
为了和 myBatis 兼容
|
List<T> |
pageQuery(Map<String,Object> filterMap) |
List<T> |
pageQuery(String sHql,
Map<String,Object> filterMap) |
List<PK> |
replaceObjectsAsTabulation(Collection<T> newObjects,
Map<String,Object> properties)
用新的子表对象列表替换旧的子表对象列表
通过复合主键查询数据库中的旧的类别
|
List<PK> |
replaceObjectsAsTabulation(Collection<T> newObjects,
String propertyName,
Object propertyValue)
用新的子表对象列表替换旧的子表对象列表
通过单主键查询数据库中的旧的类别
|
List<PK> |
replaceObjectsAsTabulation(List<T> dbObjects,
Collection<T> newObjects,
boolean checkTimestamp)
用新的子表对象列表替换旧的子表对象列表
|
List<PK> |
replaceObjectsAsTabulationCheckTimestamp(Collection<T> newObjects,
Map<String,Object> properties)
用新的子表对象列表替换旧的子表对象列表 ,更新的记录需要检查更改时间戳
通过复合主键查询数据库中的旧的类别
|
List<PK> |
replaceObjectsAsTabulationCheckTimestamp(Collection<T> newObjects,
String propertyName,
Object propertyValue)
用新的子表对象列表替换旧的子表对象列表 ,更新的记录需要检查更改时间戳
通过单主键查询数据库中的旧的类别
|
void |
saveNewObject(T o) |
List<PK> |
saveNewObjects(Collection<T> os) |
List<PK> |
saveNewObjects(T[] os) |
void |
saveObject(T o) |
void |
saveRawObject(T o) |
void |
setSessionFactory(org.hibernate.SessionFactory sessionFactory) |
void |
updateObject(T o) |
void |
updateObjectCheckTimestamp(T o)
修改之前check一下版本号,不一致抛异常
|
void |
updateObjectProperties(T o,
String... properties)
只更改部分属性,根据对象的主键来更新
|
void |
updateObjectPropertiesCheckTimestamp(T o,
String... properties)
只更改部分属性,根据对象的主键来更新,同时检验 时间戳
|
void |
updateRawObject(T o) |
protected org.hibernate.SessionFactory sessionFactory
protected static org.slf4j.Logger logger
public void setSessionFactory(org.hibernate.SessionFactory sessionFactory)
public org.hibernate.SessionFactory getSessionFactory()
@Transactional(propagation=MANDATORY) public org.hibernate.Session getCurrentSession()
public static Map<String,org.apache.commons.lang3.tuple.Pair<String,String[]>> getFilterFieldWithPretreatment(Map<String,String> fieldMap)
public final Class<?> getPoClass()
public final Class<?> getPkClass()
public final String getClassTName()
public final String getClassTShortName()
@Transactional(propagation=MANDATORY) public void deleteObject(T o)
@Transactional(propagation=MANDATORY) public void deleteObjectForce(T o)
@Transactional(propagation=MANDATORY) public void deleteObjectForceById(PK id)
@Transactional(propagation=MANDATORY) public void deleteObjectById(PK id)
@Transactional(propagation=MANDATORY) public void saveNewObject(T o)
@Transactional(propagation=MANDATORY) public List<PK> saveNewObjects(Collection<T> os)
@Transactional(propagation=MANDATORY) public void updateRawObject(T o)
@Transactional(propagation=MANDATORY) public void updateObject(T o)
@Transactional(propagation=MANDATORY) public void updateObjectProperties(T o, String... properties) throws NoSuchFieldException
o - 这对对象中除了要有对应的属性值 ,还必须有主键值properties - 需要更的属性NoSuchFieldException - 如果属性名输入的不对会报错@Transactional(propagation=MANDATORY) public void updateObjectCheckTimestamp(T o)
o - T@Transactional(propagation=MANDATORY) public void updateObjectPropertiesCheckTimestamp(T o, String... properties) throws NoSuchFieldException
o - 这对对象中除了要有对应的属性值 ,还必须有主键值properties - 需要更的属性NoSuchFieldException - 如果属性名输入的不对会报错@Transactional(propagation=MANDATORY) public void deleteObjectsAsTabulation(Collection<T> dbObjects)
dbObjects - 数据库中旧的对象列表@Transactional(propagation=MANDATORY) public void deleteObjectsAsTabulation(String propertyName, Object propertyValue)
propertyName - 外键关联字段propertyValue - 外键值(主表的主键)@Transactional(propagation=MANDATORY) public void deleteObjectsAsTabulation(Map<String,Object> properties)
properties - 复合外键字段属性 和对应额值public static Object getPoObjectId(Object poObj)
poObj - Object@Transactional(propagation=MANDATORY) public List<PK> replaceObjectsAsTabulation(List<T> dbObjects, Collection<T> newObjects, boolean checkTimestamp)
dbObjects - 数据库中旧的对象列表newObjects - 新的对象列表checkTimestamp - 更新的记录是否检查更改时间戳@Transactional(propagation=MANDATORY) public List<PK> replaceObjectsAsTabulation(Collection<T> newObjects, String propertyName, Object propertyValue)
newObjects - 新的对象列表propertyName - 外键关联字段propertyValue - 外键值(主表的主键)@Transactional(propagation=MANDATORY) public List<PK> replaceObjectsAsTabulation(Collection<T> newObjects, Map<String,Object> properties)
newObjects - 新的对象列表properties - 复合外键字段属性 和对应额值@Transactional(propagation=MANDATORY) public List<PK> replaceObjectsAsTabulationCheckTimestamp(Collection<T> newObjects, String propertyName, Object propertyValue)
newObjects - 新的对象列表propertyName - 外键关联字段propertyValue - 外键值(主表的主键)@Transactional(propagation=MANDATORY) public List<PK> replaceObjectsAsTabulationCheckTimestamp(Collection<T> newObjects, Map<String,Object> properties)
newObjects - 新的对象列表properties - 复合外键字段属性 和对应额值@Transactional(propagation=MANDATORY) public void mergeObject(T o)
@Transactional public void flush()
@Transactional(propagation=MANDATORY) public void saveRawObject(T o)
@Transactional(propagation=MANDATORY) public void saveObject(T o)
public static com.centit.support.database.utils.QueryAndNamedParams builderHqlAndNamedParams(String shql, Map<String,Object> filterDesc, Map<String,String> filterFieldDesc)
shql - shqlfilterDesc - filterDescfilterFieldDesc - filterFieldDescpublic com.centit.support.database.utils.QueryAndNamedParams builderHqlAndNamedParams(String shql, Map<String,Object> filterDesc)
public com.centit.support.database.utils.QueryAndNamedParams builderStatHqlAndNamedParams(String shql, Map<String,Object> filterDesc)
shql - shqlfilterDesc - filterDesc@Transactional public List<T> listObjects(String shql, Object[] values, com.centit.support.database.utils.PageDesc pageDesc)
@Transactional public List<T> listObjects(String shql, Object value, com.centit.support.database.utils.PageDesc pageDesc)
@Transactional public List<T> listObjects(String shql, com.centit.support.database.utils.PageDesc pageDesc)
@Transactional public List<T> listObjectsByNamedHql(String shql, Map<String,Object> params, int startPos, int maxSize)
@Transactional public List<T> listObjects(String shql, Map<String,Object> filterDesc, com.centit.support.database.utils.PageDesc pageDesc)
@Transactional public int pageCount(String sHql, Map<String,Object> filterMap)
sHql - HQL语句filterMap - 过滤条件@Transactional public List<T> listObjects(Map<String,Object> filterMap, com.centit.support.database.utils.PageDesc pageDesc)
@Transactional public List<T> listObjectByProperty(String propertyName, Object propertyValue)
@Transactional public List<T> listObjectByProperties(Map<String,Object> properties)
@Transactional public T getObjectByProperty(String propertyName, Object propertyValue)
Copyright © 2017 江苏南大先腾信息产业股份有限公司. All rights reserved.