Я пытаюсь сгенерировать 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;
}