Grails消息:没有这样的属性:for class:solutions:

时间:2016-07-27 09:56:53

标签: java hibernate grails

我为Grails实现了一个java域类,这里只是在Docs中描述:http://docs.grails.org/latest/guide/hibernate.html

package foo.bar;

import java.util.List;

import javax.persistence.Column;
import javax.persistence.ElementCollection;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.GeneratedValue;



@Entity
public class A {

     @Id 
     @GeneratedValue
     private Long id;

     @ElementCollection
     private List<String> buz;


     public Long getId() {
        return id;
     }

    public void setId(Long id) {
        this.id = id;
    }


     public void setBuz(List<String> buz) {
         this.buz = buz;
     }

     public List<String> getBuz() {
         return buz;
     }
}

并且业务代码抛出异常:

def list = A.findAll()
list.each {
    if (it.buz.contains("foobar")) {
        result = it
}

it.buz - 抛出异常:Grails消息:

  

没有这样的属性:buz for class:foo.bar.A可能的解决方案:buz。

当我调用A.getBuz()时直接捕获异常:

  

错误2016-07-27 16:51:39,060 [http-bio-8080-exec-1] ERROR errors.GrailsExceptionResolver - 处理请求时发生MissingMethodException:[GET] /   没有方法签名:static foo.bar.A.getBuz()适用于参数类型:()值:[]   可能的解决方案:getBuz(),setBuz(java.util.List),getClass()。

无法理解,为什么Grails会搜索 static 方法getBuz()? 为什么按属性调用不起作用?

1 个答案:

答案 0 :(得分:0)

你输了一个拼写错误:

 public List<String> getBuz() {
     returb buz;
 }

应为return buz;