3
我使用带注释的Hibernate 3.3.2.GA。Hibernate:@EmbeddedId,继承和@SecondaryTable
我有两个类之间的继承,前者:
@Entity
@Table(name = "SUPER_CLASS")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(
name="DISCR_TYPE",
discriminatorType= DiscriminatorType.STRING
)
@org.hibernate.annotations.Entity(mutable = false)
public class SuperClass { }
子类被映射与仲表:
@Entity
@DiscriminatorValue("VALUE")
@org.hibernate.annotations.Entity(mutable = false)
@SecondaryTable(name = "V_SECONDARY_TABLE",
pkJoinColumns = @PrimaryKeyJoinColumn(name = "ID", referencedColumnName = "ID"))
public class SubClass extends SuperClass {
@Embedded
public Field getField() {
return getField;
}
}
其中场是由两个不同的领域
@Embeddable
public class Field {
@Column("FIELD_1") String field1
@Column("FIELD_2") String field2
}
的
现在,当我在SubClass上创建查询时,在Su上搜索FIELD_1和FIELD_2字段perClass,即使它们是在子类中定义的。
我无法在字段的@Column注释中设置表,因为Field类在某处重用。我需要在SubClass类中指定它。
如何指定该字段应在辅助表中进行搜索?
谢谢你的回答。你是否介意给我另一个建议,不幸的是我忘了指定一个部分?我不能简单地将table属性放在@Column注释中,因为它在另一个类中被重用。再次感谢 – 2010-11-12 09:09:26
@volothamp请参阅**更新** – 2010-11-12 14:15:52