This commit is contained in:
地平线
2015-07-15 22:21:12 +08:00
parent ecd406341e
commit ecbbffb9d7
2 changed files with 12 additions and 11 deletions

View File

@@ -1055,29 +1055,29 @@ public final class DataJDBCSource implements DataSource {
* @return * @return
*/ */
@Override @Override
public <T> Map<Serializable, T> queryMap(final Class<T> clazz, final FilterBean bean) { public <K extends Serializable, T> Map<K, T> queryMap(final Class<T> clazz, final FilterBean bean) {
return queryMap(clazz, null, bean); return queryMap(clazz, null, bean);
} }
@Override @Override
public <T> Map<Serializable, T> queryMap(final Class<T> clazz, final FilterNode node) { public <K extends Serializable, T> Map<K, T> queryMap(final Class<T> clazz, final FilterNode node) {
return queryMap(clazz, null, node); return queryMap(clazz, null, node);
} }
@Override @Override
public <T> Map<Serializable, T> queryMap(final Class<T> clazz, final SelectColumn selects, final FilterBean bean) { public <K extends Serializable, T> Map<K, T> queryMap(final Class<T> clazz, final SelectColumn selects, final FilterBean bean) {
return formatMap(clazz, querySheet(clazz, selects, null, bean).getRows()); return formatMap(clazz, querySheet(clazz, selects, null, bean).getRows());
} }
@Override @Override
public <T> Map<Serializable, T> queryMap(final Class<T> clazz, final SelectColumn selects, final FilterNode node) { public <K extends Serializable, T> Map<K, T> queryMap(final Class<T> clazz, final SelectColumn selects, final FilterNode node) {
return formatMap(clazz, querySheet(clazz, selects, null, node).getRows()); return formatMap(clazz, querySheet(clazz, selects, null, node).getRows());
} }
private <T> Map<Serializable, T> formatMap(final Class<T> clazz, Collection<T> list) { private <K extends Serializable, T> Map<K, T> formatMap(final Class<T> clazz, Collection<T> list) {
Map<Serializable, T> map = new LinkedHashMap<>(); Map<K, T> map = new LinkedHashMap<>();
if (list == null || list.isEmpty()) return map; if (list == null || list.isEmpty()) return map;
final Attribute<T, Serializable> attr = loadEntityInfo(clazz).getPrimary(); final Attribute<T, K> attr = (Attribute<T, K>) loadEntityInfo(clazz).getPrimary();
for (T t : list) { for (T t : list) {
map.put(attr.get(t), t); map.put(attr.get(t), t);
} }

View File

@@ -166,18 +166,19 @@ public interface DataSource {
/** /**
* Map 接口 * Map 接口
* <p> * <p>
* @param <K>
* @param <T> * @param <T>
* @param clazz * @param clazz
* @param node * @param node
* @return * @return
*/ */
public <T> Map<Serializable, T> queryMap(final Class<T> clazz, final FilterNode node); public <K extends Serializable, T> Map<K, T> queryMap(final Class<T> clazz, final FilterNode node);
public <T> Map<Serializable, T> queryMap(final Class<T> clazz, final FilterBean bean); public <K extends Serializable, T> Map<K, T> queryMap(final Class<T> clazz, final FilterBean bean);
public <T> Map<Serializable, T> queryMap(final Class<T> clazz, final SelectColumn selects, final FilterNode node); public <K extends Serializable, T> Map<K, T> queryMap(final Class<T> clazz, final SelectColumn selects, final FilterNode node);
public <T> Map<Serializable, T> queryMap(final Class<T> clazz, final SelectColumn selects, final FilterBean bean); public <K extends Serializable, T> Map<K, T> queryMap(final Class<T> clazz, final SelectColumn selects, final FilterBean bean);
/** /**
* 根据指定字段值查询对象集合 * 根据指定字段值查询对象集合