Hibernate 基于全局条件限制从数据库检索域对象

Hibernate 基于全局条件限制从数据库检索域对象,hibernate,grails,gorm,Hibernate,Grails,Gorm,是否可以在grails中限制基于全局条件的对象检索 示例: 数据库中存在状态为“已删除”的对象。我不希望在进行查询时返回这些对象。例如对象。所有不应返回标记为已删除的对象 我查看了action listener方法afterLoad(),但没有弄清楚它是如何工作的,或者它是否可行。我也考虑过元编程,但我真的不想这样做。marko说得对,namedQueries才是正确的选择。您还可以拥有一个基类,所有域对象都从该基类继承一个名为Deleted的属性,该属性在您执行任何导致“Delete”的操作时

是否可以在grails中限制基于全局条件的对象检索

示例:
数据库中存在状态为“已删除”的对象。我不希望在进行查询时返回这些对象。例如
对象。所有
不应返回标记为已删除的对象


我查看了action listener方法
afterLoad()
,但没有弄清楚它是如何工作的,或者它是否可行。我也考虑过元编程,但我真的不想这样做。

marko说得对,namedQueries才是正确的选择。您还可以拥有一个基类,所有域对象都从该基类继承一个名为Deleted的属性,该属性在您执行任何导致“Delete”的操作时设置。现在,您的find*查询可以说出marko在哪里,namedquerys才是正确的选择。您还可以拥有一个基类,所有域对象都从该基类继承一个名为Deleted的属性,该属性在您执行任何导致“Delete”的操作时设置。您的find*查询现在可以说出未删除的位置

还有其他方法可以实现您需要的功能,例如,
findAll
findAllWhere
,等等。是否有任何坚持全局标准的具体原因?@JustmeVSI您可以使用hibernate筛选器。例如,您可以尝试使用hibernate过滤器来实现这一点。我将使用命名查询,然后您可以指定例如“deleted=true”,并用其他语句链接那个坏男孩。谢谢大家。我将使用命名查询。干杯还有其他方法可以实现您需要的功能,例如,
findAll
findAllWhere
,等等。是否有任何特定原因需要遵守全局标准?@JustmeVSI您可以使用hibernate筛选器。例如,您可以尝试使用hibernate过滤器来实现这一点。我将使用命名查询,然后您可以指定例如“deleted=true”,并用其他语句链接那个坏男孩。谢谢大家。我将使用命名查询。干杯