Przeglądaj źródła

BaseService增加selectFirstByExample()方法

shuzheng 9 lat temu
rodzic
commit
bd62556c02

+ 2 - 0
zheng-common/src/main/java/com/zheng/common/base/BaseService.java

@@ -24,6 +24,8 @@ public interface BaseService<Record, Example> {
 
 	List<Record> selectByExample(Example example);
 
+	Record selectFirstByExample(Example example);
+
 	Record selectByPrimaryKey(Integer id);
 
 	int updateByExampleSelective(@Param("record") Record record, @Param("example") Example example);

+ 15 - 0
zheng-common/src/main/java/com/zheng/common/base/BaseServiceImpl.java

@@ -109,6 +109,21 @@ public abstract class BaseServiceImpl<Mapper, Record, Example> implements BaseSe
 		return null;
 	}
 
+	@Override
+	public Record selectFirstByExample(Example example) {
+		try {
+			DynamicDataSource.setDataSource(DataSourceEnum.SLAVE);
+			Method selectByExample = mapper.getClass().getDeclaredMethod("selectByExample", example.getClass());
+			List<Record> result = (List<Record>) selectByExample.invoke(mapper, example);
+			if (null != result && result.size() > 0) {
+				return result.get(0);
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		return null;
+	}
+
 	@Override
 	public Record selectByPrimaryKey(Integer id) {
 		try {