【问题标题】:How do I create a transient variable in a Grails Domain Class?如何在 Grails 域类中创建瞬态变量?
【发布时间】:2012-01-22 02:41:49
【问题描述】:

如何在非持久性域类中设置变量。我希望能够写入和读取该变量,但我不希望它成为表的一部分。

在 Rails 中执行此操作的方法是使用 attr_accessor 设置一个变量。这在 Grails 中可行吗?有人知道怎么做吗?

谢谢!

【问题讨论】:

    标签: grails grails-domain-class


    【解决方案1】:

    只需将所有瞬态变量的名称添加到transients 列表中,例如

    class MyDomain {
    
      static transients = ['nonPersistent', 'nonPersistent2']
    
      Integer nonPersistent
      Integer nonPersistent2
    
      Integer persistent
      Integer persistent2      
    }
    

    【讨论】:

      【解决方案2】:

      定义不应保存到数据库的属性名称列表。如果您有只读访问器方法(“getter”),这些方法是辅助方法,但由于与持久性相关而感到困惑,这通常很有用。

      示例

      class Author {
         String name
         String getUpperCaseName() { name.toUpperCase() }
         static transients = ['upperCaseName']
      }
      

      【讨论】:

        【解决方案3】:

        这里我在域类中创建了瞬态变量-

        class Application {
            dataType domainFields  //define datatypes
            static transients = [ 'name']
        
            String  getName() {
                return 'grails App'
            }
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-07-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-08-16
          相关资源
          最近更新 更多