2013-11-20 88 views
1

我在设置布尔数组时遇到了一些问题。 我在我的模型定义的数组:传递阵列

@Entity 
public class Ssr extends Model{ 

    @Id 
    public int num; 
    public boolean[] row1; 

在我看来,文件我创建表

... 

<td>Network</td>   
    @for(a <- 1 to 10){ 
     <td> 
    @checkbox(ssrForm("row1[@a]"),'_label->None) 
    </td> 
    } 

... 

当我试图通过这个值,下一个画面,值不保存在SSR对象并且可以看到:

[info] play - database [default] connected at jdbc:h2:mem:play 
[error] c.a.e.s.t.r.ImmutableMetaFactory - Was unable to use reflection to find 
a constructor and appropriate getters forimmutable type class [Z. The errors wh 
ile looking for the getter methods follow: 
[error] c.a.e.s.d.p.DeployCreateProperties - Error with models.Ssr field:row1 
java.lang.RuntimeException: Unable to use reflection to build ImmutableMeta for 
class [Z. Associated Errors trying to find a constructor and getter methods hav 
e been logged 
     at com.avaje.ebeaninternal.server.type.reflect.ImmutableMetaFactory.crea 
teImmutableMeta(ImmutableMetaFactory.java:53) ~[avaje-ebeanorm.jar:na] 
     at com.avaje.ebeaninternal.server.type.DefaultTypeManager.recursiveCreat 
eScalarTypes(DefaultTypeManager.java:205) ~[avaje-ebeanorm.jar:na] 
     at com.avaje.ebeaninternal.server.deploy.parse.DeployCreateProperties.cr 
eateProp(DeployCreateProperties.java:321) [avaje-ebeanorm.jar:na] 
     at com.avaje.ebeaninternal.server.deploy.parse.DeployCreateProperties.cr 
eateProp(DeployCreateProperties.java:341) [avaje-ebeanorm.jar:na] 
     at com.avaje.ebeaninternal.server.deploy.parse.DeployCreateProperties.cr 
eateProperties(DeployCreateProperties.java:128) [avaje-ebeanorm.jar:na] 
     at com.avaje.ebeaninternal.server.deploy.parse.DeployCreateProperties.cr 
eateProperties(DeployCreateProperties.java:54) [avaje-ebeanorm.jar:na] 

我应该使用List而不是数组吗?

感谢您的帮助。

回答

0

我发现了酵母菌。如果您不需要将数组存储在数据库中,只需将“transient”关键字添加到变量声明中即可。

@Entity 
public class Ssr extends Model{ 

    @Id 
    public int num; 
    public transient boolean[] row1;