不同的结果映射为相同的查询,但与变量列MyBatis 3
问题描述:
我需要得到不同的Java Pojo结果映射从相同的查询不同的列在sql“Where”条件。 Es。不同的结果映射为相同的查询,但与变量列MyBatis 3
@Select("Select field1,fiel2,...,fieldn From table where #{column}=1")
List<Pojo> getGenericDetails(@Param(column));
Mybatis“鉴别器”不能做这项工作。 任何人都可以知道如何做到这一点?
在此先感谢
答
如果想从SQL不同列中的同一个查询“去哪儿”的条件,我会尝试以下方法得到不同的Java POJO的结果映射:
@Select("Select field1,fiel2,...,fieldn From table where #{column}=1")
List<Map<String,Object>> getGenericDetails(@Param(column));
结果,地图中的关键字是field1,field2,...,fieldn,该值将是field1,field2,...,fieldn的结果。
希望以上帮助。
+0
我不确定我是否理解。你介意以这种方式获得关键字段(字段)的列表,字段值(字段列表)对象,并且在我使用关键字将结果映射到不同的Pojo之后? – Maforast
答
映射你写的作品但它适用于相同的POJO。
如果您需要基于where子句中的列的不同POJO,则必须为where子句中的每个条件编写不同的查询。
这与在查询中指定列名称一样好。
所以我建议你写不同queryies和创建不同的POJO,使法的名称相关的背景,你将使用这些queryies
你的意思是你需要不同领域的基础上,列在条件用于选择 –
请仅添加相关标签,因为这些标签会被添加到回答您的问题的人 –