add query and load

上级 13a9d31f
......@@ -14,8 +14,7 @@ import org.apache.ibatis.annotations.UpdateProvider;
*/
public interface IJpaBaseMapper<T> {
public List<T> select(T entity);
@SelectProvider(type = MapperSqlProvider.class, method = "query")
public List<T> query(T entity);
//TODO follow function for Query
......@@ -35,12 +34,6 @@ public interface IJpaBaseMapper<T> {
@SelectProvider(type = MapperSqlProvider.class, method = "get")
public T get(@Param ("entityClass")Class<?> entityClass,@Param ("id") String id);
/**
* query by entity
* @param entity
* @return one
*/
public T load(T entity);
//TODO follow function for insert update and delete
@InsertProvider(type = MapperSqlProvider.class, method = "insert")
......
......@@ -181,15 +181,6 @@ public class JpaBaseService <T extends JpaBaseDomain> {
return null;
}
public List<T> select(T entity) {
try {
return getMapper().select(entity);
} catch(Exception e) {
e.printStackTrace();
}
return null;
}
/**
* query list entity by entity
* @param entity
......@@ -227,7 +218,8 @@ public class JpaBaseService <T extends JpaBaseDomain> {
*/
public T load(T entity) {
try {
return getMapper().load(entity);
List<T> entityList=getMapper().query(entity);
return entityList!=null&&entityList.size()>0?entityList.get(0):null;
} catch(Exception e) {
e.printStackTrace();
}
......@@ -241,6 +233,7 @@ public class JpaBaseService <T extends JpaBaseDomain> {
*/
public T get(String id) {
try {
log.debug("entityClass "+entityClass.toGenericString()+" , id "+id);
return getMapper().get(this.entityClass,id);
} catch(Exception e) {
e.printStackTrace();
......
......@@ -226,6 +226,23 @@ public class MapperSqlProvider <T extends JpaBaseDomain>{
_logger.trace("Count SQL : \n" + sql);
return sql.toString();
}
public String query(T entity) {
buildColumnList(entity.getClass());
SQL sql=new SQL();
sql.SELECT(" * ");
sql.FROM(getTableName(entity.getClass()));
for(FieldColumnMapper fieldColumnMapper : fieldsMap.get(entity.getClass().getSimpleName())) {
if(fieldColumnMapper.getFieldType().equalsIgnoreCase("String")&&BeanUtil.getValue(entity, fieldColumnMapper.getFieldName())==null) {
//skip null field value
}else {
sql.WHERE(fieldColumnMapper.getColumnName() + "=#{" + fieldColumnMapper.getFieldName() + "}");
}
}
return sql.toString();
}
public String getTableName(Class<?> entityClass) {
Table table = (Table)entityClass.getAnnotation(Table.class);
......
......@@ -46,7 +46,7 @@
<include refid="sql_condition"/>
</select>
<select id="query" parameterType="Students" resultType="Students">
<select id="queryBy" parameterType="Students" resultType="Students">
SELECT
ID ,
STDNO ,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册