I have a class extending an existing entity with single table strategy (which I can\'t change). I want to use UniqueConstraint for that entity so I tried:
@E
You cannot override the base class @Table declaration, that's why the sub-class uniqueConstraints directive is ignored.
With JPA you can override annotations with xml declarations. So you need to add an orm.xml file in your class-pat and add the unique constraints there:
<entity-mappings
xmlns="http://java.sun.com/xml/ns/persistence/orm"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm orm_2_0.xsd"
version="2.0">
<package>...</package>
<entity class="Document" access="PROPERTY" metadata-complete="false">
<table name="document">
<unique-constraint>
<column-name>first_column</column-name>
<column-name>second_column</column-name>
</unique-constraint>
</table>
</entity-mappings>
This way you might not even need the MyDocument sub-class, if you only used it to override the DDL schema.