我的應用程序試圖保存一個Project
對象和一個Photo
對象,它是一個Media
。 Photo
表中有media_id
作爲外鍵。保存Hibernate時出錯繼承
我的類
Project.java
@Entity
@Table(name = "tbl_project", catalog = "chetak")
public class Project implements java.io.Serializable {
private Long projectId;
private String projectName;
private Set<Media> projectMedias = new HashSet<Media>(0);
@OneToMany(fetch = FetchType.EAGER)
@Cascade({CascadeType.SAVE_UPDATE})
public Set<Media> getProjectMedias() {
return this.projectMedias;
}
public void setProjectMedias(Set<Media> projectMedias) {
this.projectMedias = projectMedias;
}
Media.java
@Entity
@Table(name = "tbl_media", catalog = "chetak")
@Inheritance(strategy=InheritanceType.JOINED)
public class Media implements java.io.Serializable {
private Integer mediaId;
private String type;
private String mime;
Photo.java
@Entity
@Table(name = "tbl_photo", catalog = "chetak")
@PrimaryKeyJoinColumn(name="mediaId")
public class Photo extends Media implements java.io.Serializable {
//private Integer photoId;
private Integer height;
private Integer width;
private String photoType;
在主類中,我將一張照片添加到項目中的一組媒體中。
Photo photo = new Photo();
photo.setPhotoType("logo");
photo.setWidth(100);
photo.setHeight(100);
project.getProjectMedias().add(photo);
關於保存項目對象,我收到以下日誌。見在年底有一個不需要插入到正在創建錯誤不存在的表:
Hibernate: insert into chetak.tbl_project (addressId, availableUnits, basicSellingPrice, bhk, builtUpAreaHigh, builtUpAreaLow, category, contactId, currentProjectStatus, description, developer, endPrice, latitude, listingTitle, listingType, longitude, numberOfBuildings, postedByName, postedByUserId, postedByUserType, projectLaunchDate, projectName, sourceListedDate, startPrice, totalUnits) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
Hibernate: insert into chetak.tbl_media (caption, dateCreated, description, isApproved, mime, size, source, title, type, url) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
Hibernate: insert into chetak.tbl_photo (height, photoType, width, mediaId) values (?, ?, ?, ?)
Hibernate: insert into tbl_project_tbl_media (tbl_project_projectId, projectMedias_mediaId) values (?, ?)
WARN : org.hibernate.engine.jdbc.spi.SqlExceptionHelper - SQL Error: 1146, SQLState: 42S02
ERROR: org.hibernate.engine.jdbc.spi.SqlExceptionHelper - Table 'chetak.tbl_project_tbl_media' doesn't exist
這是由於一些Hibernate映射錯誤?