使用Java bean作为Grails域类

时间:2011-04-11 10:07:49

标签: java grails

有很多类似的问题,但我找不到如何在grails应用程序中使用POJO模型。请考虑以下Java Bean:

package com.example.java;

public class UserBean {

    String name;
    String surname;
    Integer age;

    //--- assume setters and getters here
}

和grails域类:

package com.example.grails

class User extends com.example.java.UserBean {

    static constraints = {
        name(blank:false)
        surname()
        age()
    }
}

和scaffold = true的伴随控制器。我不确定这是否可行,但我没有看到任何暗示的东西。这个编译并运行正常,直到我尝试从生成的视图中添加新用户。然后我得到

org.hibernate.MappingException: Unknown entity: com.example.grails.User

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

hibernate.cfg.xml看起来像什么?

确保映射了com.example.grails.User类:

<hibernate-configuration>
  <session-factory>
   <mapping package="com.example.grails" />
   <mapping class="com.example.grails.User" />
  </session-factory>
</hibernate-configurations>

可以找到更多详细信息:http://grails.org/doc/1.0.x/guide/15.%20Grails%20and%20Hibernate.html

答案 1 :(得分:2)

我在this spring.io blog post

找到了这个问题的答案

如果您的Java域类是hibernate映射的,则不要将它们扩展为grails。您所要做的就是在名为UserBeanConstraints.groovy的单独文件中定义约束:

constraints = {
    name(blank:false)
    surname()
    age()
}