java-休眠:@EmbeddedId,继承和@SecondaryTable
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-休眠:@EmbeddedId,继承和@SecondaryTable,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1858字,纯文字阅读大概需要3分钟。
内容图文
![java-休眠:@EmbeddedId,继承和@SecondaryTable](/upload/InfoBanner/zyjiaocheng/688/34b79947b5e34c2093da4a006101039a.jpg)
我正在使用带有注释的Hibernate版本3.3.2.GA.
我有两个类之间的继承,前者:
@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
}
现在,当我在子类上创建查询时,即使在子类中定义了FIELD_1和FIELD_2字段,它们也会在SuperClass上进行搜索.
我无法在字段的@Column批注中设置表格,因为它在某些地方重复使用了Field类.我需要在SubClass类中指定它.
如何指定应该在辅助表中搜索的字段?
解决方法:
您应该使用表格属性
@Column("FIELD_1", table="V_SECONDARY_TABLE")
更新
当一个以上的实体使用一个可嵌入的列时,如果只需要重新映射一个列,则应使用@AttributeOverride;如果一个以上的列需要重新映射,则应使用@AttributeOverrides
@Entity
@SecondaryTable(name="OTHER_PERSON")
@AttributeOverride(name="address.street", column=@Column(name="STREET", table="OTHER_PERSON"))
public class Person {
private Address address;
@Id
@GeneratedValue
public Integer getId() { return id; }
public void setId(Integer id) { this.id = id; }
@Embedded
public Address getAddress() { return address; }
public void setAddress(Address address) { this.address = address; }
@Embeddable
public static class Address implements Serializable {
private String address;
public String getStreet() { return street; }
public void setStreet(String street) { this.street = street; }
}
}
内容总结
以上是互联网集市为您收集整理的java-休眠:@EmbeddedId,继承和@SecondaryTable全部内容,希望文章能够帮你解决java-休眠:@EmbeddedId,继承和@SecondaryTable所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。