saipanman
saipanman

Reputation: 37

JPA Entity Mappings between two tables

I keep getting the following error with my Entity mappings.

Caused by: org.hibernate.AnnotationException: mappedBy reference an unknown target entity property: edu.indstate.ics.transcript.web.dao.entity.Swrhxml.swbhxml in edu.indstate.ics.transcript.web.dao.entity.Swbhxml.swrhxmls

I am not sure what I am doing wrong. Could use some insight and help on what I am missing here.

My Entity classes are as follows:

@Entity
@Table(name = "SWBHXML" )
public class Swbhxml implements DatabaseObject, Serializable {
    private List<Swrhxml> swrhxmls;
    private static final long serialVersionUID = 1L;
    private Long swbhxmlTransId; 

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "SWBHXML_TRANS_ID", nullable = false)
    public Long getSwbhxmlTransId() {
        return swbhxmlTransId;
    }

    public void setSwbhxmlTransId(Long swbhxmlTransId) {
        this.swbhxmlTransId = swbhxmlTransId;
    }

    @OneToMany(mappedBy = "swbhxml", cascade = CascadeType.ALL)
    public List<Swrhxml> getSwrhxmls() {
        return swrhxmls;
    }

    public void setSwrhxmls(List<Swrhxml> swrhxmls) {
        this.swrhxmls = swrhxmls;
    }
}

@Entity
@Table(name = "SWRHXML" )
public class Swrhxml implements DatabaseObject, Serializable {

    private Swbhxml swbhxml;
    private static final long serialVersionUID = 1L;

    private Long SwrhxmlTransId;
    private String SwrhxmlHxpsCode;
    private Date SwrhxmlTimeStamp; 

    @ManyToOne(fetch = FetchType.EAGER) 
    @JoinColumn(name="SWBHXML_TRANS_ID")
    public Swbhxml getSwrhxml() {
        return swbhxml;
    }

    public void setSwrhxml(Swbhxml swbhxml) {
        this.swbhxml = swbhxml;
    }

    @Column(name = "SWRHXML_HXPS_CODE", length = 15)
    public String getSwrhxmlHxpsCode() {
        return SwrhxmlHxpsCode;
    }

    public void setSwrhxmlHxpsCode(String SwrhxmlHxpsCode) {
        this.SwrhxmlHxpsCode = SwrhxmlHxpsCode;
    }

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "SWRHXML_TIMESTAMP", nullable = false)
    @Temporal(TemporalType.TIMESTAMP)
    public Date getSwrhxmlTimeStamp() {
        return SwrhxmlTimeStamp;
    }

    public void setSwrhxmlTimeStamp(Date SwrhxmlTimeStamp) {
        this.SwrhxmlTimeStamp = SwrhxmlTimeStamp;
    }
}

Upvotes: 0

Views: 43

Answers (1)

JB Nizet
JB Nizet

Reputation: 691645

You use

`mappedBy = "swbhxml"`
               ^
               |___ b here

, but the annotated association is

Swbhxml getSwrhxml()
             ^
             |___ r here

Your getter and setter are named incorrectly. And frankly, with such cryptic and close entity names, you'll probably have many such bugs.

Upvotes: 3

Related Questions