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