Memory 什么&x2019;在Grails中使用内存域对象的最佳方法是什么?

Memory 什么&x2019;在Grails中使用内存域对象的最佳方法是什么?,memory,grails,dns,Memory,Grails,Dns,我正在处理一个Grail的项目,该项目中有一些域对象没有在数据库中持久化。它们通过RESTAPI进行管理,因此它们的所有CRUD操作都将使用该API而不是数据库来完成 关键是仍然能够使用一些有趣的Grails插件(比如使用Compass进行搜索) 例如,域对象用户的管理将使用RESTAPI进行管理,因此当显示用户列表时,将在远程服务器上调用REST方法来检索用户列表。我希望这个用例足够清楚:) 我可以考虑几种设计方法,但我不确定什么是最好的: 我是否应该在控制器中创建域对象(并删除 以前的用户

我正在处理一个Grail的项目,该项目中有一些域对象没有在数据库中持久化。它们通过RESTAPI进行管理,因此它们的所有CRUD操作都将使用该API而不是数据库来完成

关键是仍然能够使用一些有趣的Grails插件(比如使用Compass进行搜索)

例如,域对象用户的管理将使用RESTAPI进行管理,因此当显示用户列表时,将在远程服务器上调用REST方法来检索用户列表。我希望这个用例足够清楚:)

我可以考虑几种设计方法,但我不确定什么是最好的:

  • 我是否应该在控制器中创建域对象(并删除 以前的用户是否存储在内存中
  • 似乎可以定义一个不可持久的域类(使用 映射(我想是),但我不确定这是不是最好的方法 在哪里加载数据
  • 最好不要将用户建模为Grails域对象

提前谢谢

我将把其余的交互封装在一个服务中,并从控制器调用该服务。在这种情况下,服务将获得响应并创建其对象,并将列表传递回控制器。控制器应该只处理传入的请求、调用应用程序组件和返回响应


似乎您希望模型在其他应用程序中表示数据,这是一个好主意。由于您不需要GORM,您可能希望在应用程序的“groovy”文件夹中定义它们,而不是在“domain models”文件夹中定义它们。然后我认为它们只是对象。

我会选择
src
文件夹中的非域对象-不过,需要检查是否可以将上述插件与它们一起使用


我想知道您希望从非持久类中获得什么域类功能?

谢谢您提供的信息,看起来不错,除非我认为我确实需要GORM作为搜索插件,但我会尝试一下。我想我可以使用这种方法,使用内存作为数据库,而不是真正的数据库,这样搜索插件似乎可以很好地工作,谢谢,但我认为这不会与插件一起工作,因为我想他们期望域对象。关于非持久性域对象,只针对远程对象(CRUD使用REST操作进行管理,正如我在问题中所描述的),那么您使用的插件是什么,用于什么?或者你还不确定?不确定最终的决定,但至少是一个搜索和安全插件。我会尝试做一个快速测试,但我想没有域对象是不行的。