Java 使用@AttributeOverride
我的可嵌入类如下所示Java 使用@AttributeOverride,java,hibernate,jpa,hibernate3,Java,Hibernate,Jpa,Hibernate3,我的可嵌入类如下所示 `@Embeddable public class AddressBean { private String streetAddress; private String address1; private String address2; private String cityName; private String stateName; private String zipCode; }` 并且嵌入的属性是 @Embedd
`@Embeddable
public class AddressBean {
private String streetAddress;
private String address1;
private String address2;
private String cityName;
private String stateName;
private String zipCode;
}`
并且嵌入的属性是
@Embedded
@AttributeOverrides({
@AttributeOverride(name="streetAddress", column=@Column(name="APPLALTSTREETADDRESS")),
@AttributeOverride(name="address1", column=@Column(name="APPLALTADDRESS1")),
@AttributeOverride(name="address2", column=@Column(name="APPLALTADDRESS2")),
@AttributeOverride(name="cityName", column=@Column(name="APPLALTCITYADDRESS")),
@AttributeOverride(name="stateName", column=@Column(name="APPLALTSTATEADDRESS")),
@AttributeOverride(name="zipCode", column=@Column(name="APPLALTSTATEZIP"))
})
private AddressBean altAddress;
@Embedded
@AttributeOverrides({
@AttributeOverride(name="streetAddress", column=@Column(name="APPLSTREETADDRESS")),
@AttributeOverride(name="address1", column=@Column(name="APPLADDRESS1")),
@AttributeOverride(name="address2", column=@Column(name="APPLADDRESS2")),
@AttributeOverride(name="cityName", column=@Column(name="APPLCITYADDRESS")),
@AttributeOverride(name="stateName", column=@Column(name="APPLSTATEADDRESS")),
@AttributeOverride(name="zipCode", column=@Column(name="APPLSTATEZIP"))
})
private AddressBean applAddress;
@Embedded
@AttributeOverrides({
@AttributeOverride(name="streetAddress", column=@Column(name="APPLALTDIRECTION1ADDRESS")),
@AttributeOverride(name="address1", column=@Column(name="APPLESIGNADDRESS1")),
@AttributeOverride(name="address2", column=@Column(name="APPLESIGNADDRESS2")),
@AttributeOverride(name="cityName", column=@Column(name="APPLESIGNCITYADDRESS")),
@AttributeOverride(name="stateName", column=@Column(name="APPLESIGNSTATEADDRESS")),
@AttributeOverride(name="zipCode", column=@Column(name="APPLESIGNSTATEZIP"))
})
private AddressBean esignAddress;
我想为altAddress和applAddress存储streetAddress,但不为esignAddress存储。
这意味着,根据上面的代码,我需要修改语句
`@AttributeOverride(name="streetAddress", column=@Column(name="APPLALTDIRECTION1ADDRESS")),`
请帮助我如何做到这一点。提前感谢。您是在问我们如何在编辑器中删除文本吗?您遇到的问题是什么?在上面的代码中,当使用session.save方法时,它会在数据库中插入3个对象的所有6个属性。这是默认机制。但我不希望为ESignAddress存储streetAddress,因为ESignAddress是代码中的APPLALTDIRECTION1ADDRESS。如果我删除esignAddress上面的streetAddress AttributeOverride语句,它将作为streetAddress列存储在DBSplit AddressBean中的两个嵌入式文件中,即StreetAddressBean和DefaultAddressBean@wypieprz谢谢我没注意到