генерировать DDL из аннотаций JPA - PullRequest
1 голос
/ 26 марта 2011

Я пытаюсь сгенерировать DDL из набора классов, аннотированных JPA, используя цель hbm2ddl модуля hibernate3-maven-plugin. Я настроил следующее в моем pom.xml

        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>hibernate3-maven-plugin</artifactId>
            <version>2.2</version>
            <executions>
                <execution>
                    <id>hibernate-create-schema</id>
                    <phase>process-classes</phase>
                    <goals>
                        <goal>hbm2ddl</goal>
                    </goals>
                    <configuration>
                        <components>
                            <component>
                                <name>hbm2ddl</name>
                                <implementation>jpaconfiguration</implementation>
                            </component>
                        </components>
                        <componentProperties>
                            <jdk5>true</jdk5>
                            <persistenceunit>bm-domain</persistenceunit>
                            <outputfilename>create.sql</outputfilename>
                            <drop>false</drop>
                            <create>true</create>
                            <export>false</export>
                            <format>true</format>
                        </componentProperties>
                    </configuration>
                </execution>
            </executions>
        </plugin>

Мой файл persistence.xml содержит только следующее:

<persistence-unit name="bm-domain" transaction-type="RESOURCE_LOCAL">   
</persistence-unit>

И я добавил файл database.properties в classpath, который указывает:

hibernate.dialect=org.hibernate.dialect.MySQLDialect

Когда я запускаю mvn install Я получаю ошибку:

org.hibernate.MappingException: может не определить тип для: java.util.Set, в таблице: пользователь, для столбцов: [org.hibernate.mapping.Column (compatibilityAnnualEarnings)]

, который, по-видимому, ссылается на следующие свойства класса User

Set<AnnualEarnings> compatibleAnnualEarnings;   

@Enumerated(EnumType.STRING)
AnnualEarnings annualEarnings;

класс AnnualEarnings находится в подпакете пакета класса User и определяется следующим образом:

public enum AnnualEarnings implements Serializable{
    GROUP_1, GROUP_2, GROUP_3, GROUP_4, GROUP_5, GROUP_6, GROUP_7;
}

1 Ответ

3 голосов
/ 26 марта 2011

Вы аннотировали Set<AnnualEarnings> @ElementCollection?

Это также может быть полезно: Постоянный набор Enums в однонаправленном отображении "многие ко многим"

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