有人能告诉我Hibernate是否支持将关联作为实体的主键吗?我认为这应该是受支持的,但我在尝试任何表示此类关系的映射时都遇到了很多麻烦。特别是对于下面的直接映射:
我遇到了一个org.hibernate.MappingException错误:“无法确定EntityFoo的类型,表为ENTITY_BAR,列为[org.hibernate.mapping.Column(foo)]”。
深入代码后发现,ID始终被视为值类型;即“任何通过值而不是引用持久化的东西。它本质上是一个Hibernate Type,连同零个或多个列。”我可以通过声明它可序列化来使我的EntityFoo成为值类型,但我不认为这会导致正确的结果。
我原以为Hibernate会将列的类型视为整数(或父ID的实际类型),就像对于普通的一对一链接一样,但当我将其声明为ID时,似乎并没有发生这种情况。我是否超出了尝试将@OneToOne与@Id组合的可能性?如果是这样,那么如何合理地建模这种关系呢?
@Entity
public class EntityBar
{
@Id
@OneToOne(optional = false, mappedBy = "bar")
EntityFoo foo
// other stuff
}
我遇到了一个org.hibernate.MappingException错误:“无法确定EntityFoo的类型,表为ENTITY_BAR,列为[org.hibernate.mapping.Column(foo)]”。
深入代码后发现,ID始终被视为值类型;即“任何通过值而不是引用持久化的东西。它本质上是一个Hibernate Type,连同零个或多个列。”我可以通过声明它可序列化来使我的EntityFoo成为值类型,但我不认为这会导致正确的结果。
我原以为Hibernate会将列的类型视为整数(或父ID的实际类型),就像对于普通的一对一链接一样,但当我将其声明为ID时,似乎并没有发生这种情况。我是否超出了尝试将@OneToOne与@Id组合的可能性?如果是这样,那么如何合理地建模这种关系呢?