如何通过mybatis基于注释将对象(超过10个属性)插入到mysql中而不列出所有属性

时间:2015-10-28 04:51:27

标签: java mysql annotations mybatis spring-mybatis

我想基于注释通过mybatis将具有10个以上属性的Object插入到mysql中。但我必须列出所有属性,这太不方便了。我想知道是否有一些方法可以轻松插入对象,而无需通过mybatis列出所有属性。这是我的片段。非常感谢。

SELECT *
FROM quotation q
WHERE q.quotationId NOT IN (SELECT ip.quotation_id FROM invest_project ip) or q.quotationId is null

1 个答案:

答案 0 :(得分:3)

MyBatis(至少版本3)无法实现。

MyBatis在从数据库中读取数据时具有自动映射功能,但没有选择在插入时自动映射字段。

原因是MyBatis非常以SQL为中心,您需要手动编写SQL。在SQL select语句(select * from table)中可以有隐式字段,因此在这种情况下会自动映射到POJO,但是不可能在update或insert中有隐式字段,因此不能自动映射。