【发布时间】:2014-01-30 16:32:03
【问题描述】:
这真的很尴尬,我已经制作了一个标准的 pojo 类和它的 dao 类,用于数据检索。我很难理解如何处理 Pojo 类的自定义查询数据的基本过程。
假设我的用户类是
public class User{
private int userId;
private String username;
private int addressId;
}
public class Address{
private int addressId;
private String zip;
}
public class UserDAO{
public void getUserDetails(){
String getSql = select u.userId, u.username, a.zipcode from user u, address a where u.addressId = a.addressId;
//no pojo class is now specific to the resultset returned. so we can't map result to pojo object
}
}
现在我应该如何使用我的 pojo 类对此进行建模,就好像使用 String 来管理它一样,那么面向对象的概念就消失了,未来的复杂性也会增加。请指导!
更新说明
我们知道我们可以将相同的表对象映射到相同的 pojo 类,但是当查询是定制的并且返回的数据没有映射到任何特定的类时,那么过程是什么?即我们应该再上课吗?或者我们应该把这些数据放在一个字符串变量中吗?也请举个例子。
【问题讨论】:
-
JPA 进行对象/关系映射。也许尝试使用 JPA 的 eclipseLink 的 NetBeans IDE,并让类从 DB 生成(例如)。 netbeans.org 上有一些很好的 NetBeans 教程。
-
@JoopEggen 我已经更新了我的问题以获得更好的解释。
-
除了目前的两个答案,为了连接表和进行计算,您可以创建一个带有虚拟字段的数据库 view。这个视图也可以有一个 POJO。问题在于这样的查询是否自然;越多,风景就越好。尤其是在过度规范化的数据库中,视图可能是有益的。
-
另见此问题/答案,其中向您展示了如何使用 JPA 将自定义查询映射到非实体 POJO。 stackoverflow.com/questions/13012584/…