2017-10-28 62 views
0

我需要得到不同的Java Pojo结果映射从相同的查询不同的列在sql“Where”条件。 Es。不同的结果映射为相同的查询,但与变量列MyBatis 3

@Select("Select field1,fiel2,...,fieldn From table where #{column}=1") 
List<Pojo> getGenericDetails(@Param(column)); 

Mybatis“鉴别器”不能做这项工作。 任何人都可以知道如何做到这一点?

在此先感谢

+0

你的意思是你需要不同领域的基础上,列在条件用于选择 –

+0

请仅添加相关标签,因为这些标签会被添加到回答您的问题的人 –

回答

0

如果想从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

0

映射你写的作品但它适用于相同的POJO。

如果您需要基于where子句中的列的不同POJO,则必须为where子句中的每个条件编写不同的查询。

这与在查询中指定列名称一样好。

所以我建议你写不同queryies和创建不同的POJO,使法的名称相关的背景,你将使用这些queryies

+0

嗨Harsha tnx的回复,但目标只是不使用多个查询,因为改变只是一个参数代表列。否则,我应该做5个不同的查询,做同样的事情 – Maforast

+0

在这种情况下,你必须使用相同的POJO –

+0

我可以用这种方式设置返回类型的映射器:List 并在运行时在myBatis中传递T不同的对象类型? – Maforast

相关问题