我正在使用MyBatis进行简单的选择。
假设我们有以下类:
class Book {
private String bookName;
public Book(String bookName){
this.bookName = bookName;
}
public String getBookName(){
return bookName;
}
}
class Student {
private String studentName;
private Book book;
public Student(){}
// getters and setters
}
我有一个返回Student
对象的方法的注释。
@Select("Select studentName, book from Students")
我的问题是这本书总是空的。我假设MyBatis将使用该JDBC类型(在本例中为String)调用构造函数来填充book。我错过了什么或做错了什么?
答案 0 :(得分:0)
一个选项是
使用@ConstructorArgs注释显式调用Constructor方法。
@Select("Select studentName, book from Students")
@ConstructorArgs(value = {
@Arg(column = "studentName", javaType=java.lang.String.class),
@Arg(column = "book", javaType = java.lang.String.class)
})
并将它们传递给Student构造函数,该构造函数调用Book构造函数。