在我发现的mybatis的几乎所有例子中,人们都指定了每一列 插入。我不想指定表中的每一列。在那儿 任何方式,当我用用户对象调用addProfile()时。所有的属性 映射并直接插入给定表的所有列? 我想这样......
@Insert("insert into user values #{user}")
@Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id")
public int addProfile(User user);
答案 0 :(得分:2)
您可以将User对象作为addProfile()
方法中的参数传递。但是您在@Insert
注释中指定的String是一个纯SQL语句,它不知道您传递给语句的用户对象。
这answer明确指出,
MyBatis在从数据库读取数据时有自动映射,但没有 可以选择在插入时自动映射字段。
在SQL select语句(
select * from table
)中可以有隐式字段,因此在这种情况下会自动映射到POJO,但是不可能在更新或插入中使用隐式字段 没有自动映射。