ActiveJDBC 是一个真正的“瘦”数据库映射器,允许查询数据库并将结果映射到 POJO。我使用的是 2.1-SNAPSHOT 版本。
然而,当涉及到一个类的属性时,看起来必须手动完成艰苦的工作(或者我已经监督了一个重要的部分)。
示例:假设有一个类 Person 具有 firstName 和 lastName:
public class Person {
private String firstName;
private String lastName;
public String getFirstName() {
return this.firstName;
}
public void setFirstName(String f) {
this.firstName = f;
}
// same for lastName
}
现在检索数据很容易:
List<Person> persons = Person.findAll();
但是,似乎有必要手动将属性分配给一个类:
for(Person p : persons) {
System.out.println(p.getLastName()) // ===> null
}
所以问题是:是否可以(如果可以,如何)使用通常的 getter 和 setter 访问 POJO 的属性?或者是否可以注释字段以将它们相应地映射到数据库列(例如 first_name、last_name)?
我需要经常访问 POJO 的某些字段,并且我想使用标准的 getter 来这样做。但是,访问模型的 get(property) 方法非常昂贵(不确定 Model.get() 是否意味着 SELECT 语句?)。
现在我得到了一些丑陋的东西
String getFirstName() {
if (this.firstName != null)
return this.firstName;
Object o = get("first_name");
if (o == null)
this.firstName = "";
else
this.firstName = o.toString;
return this.firstName;
}
那么......我在这里错过了什么吗?......感谢任何帮助。