gpt4 book ai didi

grails - 将GORM关系过滤到DTO对象中

转载 作者:行者123 更新时间:2023-12-02 16:02:34 25 4
gpt4 key购买 nike

我有一个使用GORM构建的非常简单的模型,比方说一个Class Parent和一个与Child类的@OneToMany关系。子类具有“版本”属性。模型通常是只读的,因为更新非常罕见。
我从数据库中检索标准查询的父对象,并且也得到了与他的 child 的每一个关系(急切或懒惰并不重要)。所以在这一点上,我有一个 parent 和他的 child 。

现在,我需要根据基于“版本”属性的一些规则,从父对象的关系集中动态滤除一些子对象(例如:如果两个子对象具有相同的名称,则仅应使用最新版本关系集),并将结果传递给上层,以进行进一步的细化(可能再次访问数据库)。

我正在评估2个方法:

1)DTO方法。我构建了一个DTO来过滤掉不需要的东西,并将结果DTO对象传递给上层。

2)检索我需要的所有内容,分离对象,过滤掉 child ,然后将分离的对象传递到上层。

3)我不知道的一些过滤功能,可以过滤给定某些属性或某些条件的关系

我认为第一个更安全,可以单独访问数据库,可以修改DTO对象,而不必冒险在修改GORM实体时意外抛出异常。但是我想知道我是否正确,在处理必须在返回上层之前修改对象/实体的分层应用程序时,有什么建议?

最佳答案

我将创建一个简单的uni-dir关系Owner <-Ownee,并使用简单的Ownee获得所有group by的实例,例如作为criteria query:

def list = Ownee.withCriteria{
projections{
max 'version'
groupProperty 'name'
}
eq 'owner', owner
}

关于grails - 将GORM关系过滤到DTO对象中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29104502/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com