У меня есть сущность JPA следующим образом:
public class Host {
@Id
@TableGenerator(name = "Host.id", schema = "Schema", table = "SEQUENCE", pkColumnName = "SEQ_NAME", valueColumnName = "SEQ_COUNT", pkColumnValue = "Host.id")
@GeneratedValue(generator = "Host.id", strategy = GenerationType.TABLE)
protected Long id;
@NotNull
@Column(length = 64, nullable = false)
protected String name;
@Size(max = 64)
@Column(length = 64)
protected String hardwareType;
@Size(max = 65535)
@Column(length = 65535)
protected String resourceDescription;
}
Как переопределить Генератор таблиц (без использования специфичной для Hibernate @GenericGenerator
аннотации)?
В настоящее время у меня есть решение, которое определяет <hibernate-mapping>
для сущности в файле orm.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.x.y.datamodel.config.equipment.Host" schema="Schema">
<id name="id" column="id">
<generator class="com.x.y.customtablegenerator.CustomTableGenerator"/>
</id>
<property name="name" column="name"></property>
<property name="hardwareType" column="hardwareType"></property>
...
</class>
</hibernate-mapping>
Однако для этого необходимо добавить <property>
для каждого свойства, определенного в сущности.
Есть ли способ переопределить только Генератор без необходимости дважды указывать все свойства объекта?