我使用MyBatis 3.0.3并且有问题:数据库中的一些列具有带下划线的名称,这些列应映射到实体属性(当然在camelCase中)
class User {
private String first_name;
...
}
public interface UserDao {
@Select("SELECT * FROM users")
List<User> findAllUsers();
}
不幸的是我看不到任何办法解决这个声明(像在JPA – @Column(name =“first_name”)中完成).
我可以在select子句中为这样的列创建别名(以firstName作为firstName等等),但是也看起来很跛脚.
有任何想法吗?谢谢.
解决方法
感谢DwB.这有助于
@Select("SELECT * FROM users")
@Results({
@Result(property = "firstName",column = "first_name"),@Result(property = "lastName",column = "last_name")
})
List<User> findUsers();
ps但是在多个查询的情况下,我需要为返回实体用户的每个方法的@ Result / @ Result代码进行样板.在我的情况下,会有很少的地方,所以这不是一个问题,但一般来说,我仍然希望找到更一般的解决方案.