【发布时间】:2012-02-24 08:27:54
【问题描述】:
我有 2 个表:Document 和 Category 具有多对多关系。此外,该关系还有一个名为weight 的属性。 我也有相应的类,其中 Document 表示如下:
public class Document {
private Integer id; // Id from DB, 0 if new object
private String name;
private String url;
private Date dateCreated;
private List<Category> categories;
// getters & setters...
}
现在我有 2 个问题 - 特别关注最佳实践。 我想从数据库(MySQL)中检索数据并构建我的对象。我使用这样的 SELECT 语句:
SELECT doc.*, GROUP_CONCAT(cat.CategoryID SEPARATOR ',') AS CategoryGrp FROM document doc
LEFT JOIN doc_category dc ON doc.Doc_ID = dc.DC_DocID
LEFT JOIN category cat ON dc.DC_CategoryID = cat.CategoryID
GROUP BY doc.Doc_ID
在结果集中,rs.getString(5) --> CategoryGrp 将具有相关类别的 ID。现在我如何通过根据类的需要链接它的类别来继续构建我的对象文档。
我倾向于在表 Category 上执行新的 SELECT 请求,以便在第一个 ResultSet 上循环获取其他详细信息(例如类别名称)。 这是一个好习惯吗?没有“推荐”的方式吗?
我的第二个问题是关于联结表中的属性 weight。我应该在哪个对象中记录它的值?我猜它是 Category 但不太确定,因为 Category 对象本身不能有 weight...
希望我已经足够清楚了。 谢谢
【问题讨论】: