Grails - Hibernate XML - Пользовательские имена столбцов - PullRequest
2 голосов
/ 28 июня 2011

У меня есть проект Grails, который использует Hibernate XML с классами домена в папке src / groovy.Я обновляюсь с 1.0.3 до 1.3.7.Hibernate XML имеет собственные имена столбцов для некоторых свойств, и классы домена используют эти свойства.Однако, когда я запускаю приложение, оно генерирует новые столбцы для свойств, как если бы у них не было свойства столбца:

XML для пользователя:

    <class name="User" table="x_users">
        <cache usage="read-write"/>
        <comment>User</comment>
...
<property name="emailAddress" column="emailAddress"/>
...
</class>

</hibernate-mapping>

Домен для пользователя (в src/ groovy):

package com.x.domain

class User {
...
  String emailAddress
...
}

В результате создается столбец email_address при запуске приложений.Любые идеи?

ОБНОВЛЕНИЕ:

Даже если я добавлю сопоставления в класс домена, он по-прежнему создает новый столбец:

class User {
    static mapping = {
        emailAddress column:'emailAddress'
        }
}

Ответы [ 3 ]

1 голос
/ 28 июня 2011

Вы можете настроить имя столбца в самом классе домена, например,

class User {
  String emailAddress

  static mapping = {
    emailAddress column: "emailAddress"        
  }
}
0 голосов
/ 29 июня 2011

@ skaz: Я думаю, вам лучше поместить класс вашего домена в папку grails-app/domain.Папка src/groovy предназначена для непостоянного класса домена (который не будет сохранен в базе данных), так что он не получит способ отображения Grails.Это также причина, по которой метод Дона не сработал.

По моему опыту, перенос не будет слишком сложным.После этого вы можете удалить конфигурацию hibernate и использовать только отображение ORM Grails (как указал Дон).

0 голосов
/ 28 июня 2011

Похоже, вы не можете указать заглавную букву в Hibernate 3 XML для Grails. Когда я меняю отображение на:

 <class name="User" table="x_users">
        <cache usage="read-write"/>
        <comment>User</comment>
...
<property name="emailAddress" column="test"/>
...
</class>

это работает правильно. Когда я изменяю его на строчные буквы, он работает правильно, но введение заглавной буквы приводит к значению по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...