朋友:
在服务类中,我正在尝试查询数据库并获取结果以填充我的域类。我不确定我是否正确思考这个问题,或者我必须使用find方法来填充我的域类?
我的理解是: Grails通过URLMappings将调用我的控制器,在里面我可以直接实例化Service类。
然后我直接在Service类中使用SQL来迭代Resultset并填充Domain类列表并将其返回给控制器类,然后控制器类将列表返回给REST调用用户。
这是正确的方法,还是我必须从控制器调用服务,但是使用find方法,这将填充列表并且应该用于返回列表?
在所有情况下,我都使用H2 db本身。
关心并感谢您的时间。 -Narahari
答案 0 :(得分:0)
根据标准,Flow来自控制器>服务> DAO。
所有业务逻辑应仅在服务类中编写。 当您使用DAO层时,通过GORM隐藏。 Grails是非常强大和富有成效的语言。您使用GORM进行数据库活动。对于您的方案,您可以使用findAll,createCriteria,HQL或本机SQL查询方法,但不应该破坏流程。这意味着如果在控制器中编写与数据库相关的代码,那么将来很难维护调试代码。