Grails域对象检索

时间:2015-02-04 16:54:17

标签: grails

我正在构建审核系统并构建以下域对象和关联:

Review.groovy

{global review attributes -- when, status, finished, etc.]

static hasMany = [employeeReview: EmployeeReview]

Employee.groovy

{general employee attribute data}

static hasMany = [employeeReview: EmployeeReview]

EmployeeReview.groovy - 此对象的目的是将Review和Employee联系起来,并为每位员工确定审阅者。

Employee employee
Employee reviewer
static belongsTo = [review: Review, employee: Employee]

static hasMany = [employeeProjectReview: EmployeeProjectReview]

static mappedBy = [employee: "none", reviewer: "none"]

EmployeeProjectReview.groovy - 可以为员工分配许多项目

Project project  //not displayed here, just some general info related to a project

static hasMany = [projectReviewDetails: ProjectReviewDetails]
static belongsTo = [employeeReview: EmployeeReview]

ProjectReviewDetails.groovy - 所有评论信息,每个项目多个

static belongsTo = [employeeProjectReview: EmployeeProjectReview]

通过管理操作从各种系统导入数据。正如我所希望的那样,一切都得到了保存。

几个问题:

*上述关联是否合适。我决定不将审阅者放在Employee对象中,因为这可能每年都在变化。

*从应用程序的角度来看,所有内容都是通过EmployeeReview构建的。为了使审阅者更容易,我正在构建一些REST服务,以便在需要时将数据返回到这些屏幕。当我使用employee.id和audit.id获得EmployeeReview实例时,我获得了比预期更多的东西。我真的只需要在该审计中为该员工提供域对象(项目和项目详细信息),也可能需要审阅者的一些属性(姓名,电子邮件,电话)。

我正在做急切的读取并返回深度JSON对象。我得到的是每个EmployeeReview条目(来自EmployeeReview / Review关联) - 这是一个大量的数据。我也注意到我也得到了审稿人EmployeeReview协会。它的数据较少,但并不需要。

我已阅读过使用自定义转换器降低属性,但仍然不想返回我不会使用的数据(例如,查询审阅者的所有项目)。

如果没有自己编写SQL,我该怎么办?

0 个答案:

没有答案