Java 使用Hibernate在CollectionTable的列上创建索引
假设我有以下实体,它对订阅服务器进行建模,并使用Java 使用Hibernate在CollectionTable的列上创建索引,java,hibernate,jpa,data-modeling,Java,Hibernate,Jpa,Data Modeling,假设我有以下实体,它对订阅服务器进行建模,并使用CollectionTable对订阅列表进行建模,如下所示: @Entity @Table(name = "SUBSCRIBER") public class Subscriber { @ElementCollection @CollectionTable(name = "PERSON_ORG_SUBSCRIPTIONS", joinColumns = { @JoinColumn( name
CollectionTable
对订阅列表进行建模,如下所示:
@Entity
@Table(name = "SUBSCRIBER")
public class Subscriber {
@ElementCollection
@CollectionTable(name = "PERSON_ORG_SUBSCRIPTIONS",
joinColumns = { @JoinColumn( name = "PERSON_ID", referencedColumnName = "PERSON_ID" ),
@JoinColumn( name = "ORG_ID", referencedColumnName = "ORG_ID" ) } )
@Column(name = "SUBSCRIPTION_NAME")
protected Set<String> _subscriptionNames;
}
我得到一个例外:
org.hibernate.MappingException: Unable to find logical column name from physical name null in table SUBSCRIBER
我还尝试在订阅者
实体上使用org.hibernate.annotations.Table
注释,但似乎没有办法让它引用个人组织订阅
表
我使用的是Hibernate 3.5.3和PostgreSQL 9.0。订阅表中是否存在名为“SUBSCRIPTION\u name”的列
您是否计划根据代码在表上创建索引?您可能应该使用hibernate.hbm2ddl.auto=create看看这里:最终我放弃了在hibernate 4.2和以前版本上制作一些索引。Hibernate4.3将支持JPA2.1,它支持
索引
,就在@JoinTable
中。
org.hibernate.MappingException: Unable to find logical column name from physical name null in table SUBSCRIBER