Использование Java-бинов в качестве классов домена Grails - PullRequest
4 голосов
/ 11 апреля 2011

Есть много похожих вопросов, но я не смог точно найти, как использовать модель POJO в приложении Grails. Рассмотрим следующий 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()
    }
}

и сопутствующий контроллер с эшафотом = true. Я не уверен, должно ли это сработать, но я не видел ничего, что подсказывало бы обратное. Это компилируется и работает нормально, пока я не попытаюсь добавить нового пользователя из сгенерированного представления. Тогда я получаю

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

Есть идеи?

Ответы [ 2 ]

3 голосов
/ 12 апреля 2011

Как выглядит 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

2 голосов
/ 13 апреля 2011

Я нашел ответ на эту проблему в: этом блоге spring.io

Если ваши доменные классы Java отображаются в спящий режим, вы не расширяете их в виде грааля. Все, что вам нужно сделать, это определить ограничения в отдельном файле с именем UserBeanConstraints.groovy:

constraints = {
    name(blank:false)
    surname()
    age()
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...