繁体   English   中英

线程“ main” org.hibernate.MappingException中的异常:实体映射中的重复列

[英]Exception in thread “main” org.hibernate.MappingException: Repeated column in mapping for entity

我是Hibernate的初学者。

我收到此错误消息,无法找出问题所在:

线程“主”中的异常org.hibernate.MappingException:实体:com.hibernate.aris.Subscribers列的映射中重复的列:city(应映射为insert =“ false” update =“ false”)“

我在某处读到有人必须将HBM文件中的属性设置为“ inverse”,但是我还真的不知道那是什么意思。

任何意见,将不胜感激?

称为地址的可嵌入类

@Embeddable
public class Address {
    @Column (name = "STREET_NAME")
    private String street;

    @Column (name = "CITY_NAME")
    private String city;

    @Column (name = "POST_CODE")
    private String postcode;

    public String getStreet() {
        return street;
    }
    public void setStreet(String street) {
        this.street = street;
    }
    public String getCity() {
        return city;
    }
    public void setCity(String city) {
        this.city = city;
    }
    public String getPostcode() {
        return postcode;
    }
    public void setPostcode(String postcode) {
        this.postcode = postcode;
    }
}

订户类别

@Entity
@Table(name = "Subscriberstbl")
public class Subscribers {

    private int subID;
    private String firstname;
    private String lastname;

    @Embedded
    @AttributeOverrides({
    @AttributeOverride(name ="street", column = @Column(name="HOME_STREET_NAME")), 
    @AttributeOverride(name = "city", column = @Column(name="HOME_CITY_NAME")), 
    @AttributeOverride(name = "postcode", column = @Column(name="HOME_POST_CODE"))})
    private Address homeaddress;

    @Embedded
    private Address officeaddress;

    //Getters and Setters
    public String getFirstname() {
        return firstname;
    }

    public void setFirstname(String firstname) {
        this.firstname = firstname;
    }

    public String getLastname() {
        return lastname;
    }

    public void setLastname(String lastname) {
        this.lastname = lastname;
    }

    @Id
    @GeneratedValue
    public int getSubID() {
        return subID;
    }
    public void setSubID(int subID) {
        this.subID = subID;
    }

    public Address getOfficeAddress() {
        return officeaddress;
    }

    public void setOfficeAddress(Address address) {
        this.officeaddress = address;
    }

  public Address getHomeaddress() {
        return homeaddress;
    }

    public void setHomeaddress(Address homeaddress) {
        this.homeaddress = homeaddress;
    }

}

您正在混合使用FIELD(字段注释)和PROPERTY(访问者注释)的访问权限,而PROPERTY是赢家,因此@AttributesOverride被忽略。
尝试将@Id @GeneratedValue从访问器移动到字段类。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM