我正在使用 MyBatis 3.0.3 并且遇到问题:数据库中的某些列的名称带有下划线,这些列应该映射到实体属性(当然是驼峰式)
class User {
private String first_name;
...
}
public interface UserDao {
@Select("SELECT * FROM users")
List<User> findAllUsers();
}
不幸的是,我看不出有什么方法可以声明性地解决这个问题(就像在 JPA 中所做的那样 - @Column(name = "first_name"))。 我可以在 select-clause 中为此类列创建别名(如 first_name as firstName 等),但这看起来也很蹩脚。
有什么想法吗?谢谢。
最佳答案
感谢 DwB。这有助于:
@Select("SELECT * FROM users")
@Results({
@Result(property = "firstName", column = "first_name"),
@Result(property = "lastName", column = "last_name")
})
List<User> findUsers();
ps 但是在多个查询的情况下,我需要为每个返回实体 User 的方法编写样板代码 @Results/@Result 代码。在我的情况下,会有很少的地方,所以这不是问题,但总的来说,我仍然想找到更通用的解决方案。
关于java - MyBatis 列映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5080000/