ActiveJDBC是一个真正的"瘦"数据库映射器允许查询数据库并将结果映射到POJO。我使用的是2.1-SNAPSHOT版本。
然而,当涉及到一个类的属性时,看起来人们必须手动完成这项工作(或者我已经监督了一个必不可少的部分)。
实施例: 我们假设有一个具有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来这样做。 但是,访问Model的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;
}
所以...我错过了什么吗?... 感谢任何帮助。
答案 0 :(得分:0)
很抱歉,您的代码示例与属性不相关,不支持框架功能和文档。此外,POJO是Plain Old Java Object, ,与Java Bean不一定相同 ,但您要将两者混为一谈。有关ActiveJDBC属性的更多信息,请参阅Getters and Setters。
此外,您可以将ActiveJDBC模型转换为&#34; bean&#34;,但您应该更像地图:
public class Person extends Model{
public String getFirstName() {
return getString("first_name");
}
public void setFirstName(String f) {
set("first_name", f)
}
}