我有一个数据模型,其中一些实体从单个超类实体继承一些常见属性。我在超类上使用了InheritanceType.JOINED
,这导致Hibernate为超类中定义的属性创建一个表,其子类表只包含由子类添加的列(因此为子类实例加载属性,执行联接在两张桌子之间)。这一切工作正常。Hibernate:跨多个表的@UniqueConstraint?
然而,我想要做的是指定一个唯一约束,它包含子类和超类表中的字段。例如,说我的父实体是一样的东西:
Thing: {id, name}
...然后我有一些子类的东西,例如:
Company: {address} //inherits 'id' and 'name' from 'Thing'
Employee: {company} //inherits 'id' and 'name' from 'Thing'
...我想配置Hibernate自动实施给定的Company
不能有两个Employee
同名。 company
字段位于Employee
表中,但name
字段位于Thing
表中,那么是否有任何方法可以让Hibernate执行此约束,或者是否需要以编程方式添加新的Employee
?