【发布时间】:2014-12-31 12:55:29
【问题描述】:
我的应用程序正在尝试保存Project 对象和Photo 对象,即Media。 Photo 表中有 media_id 作为外键。
我的课是
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 jpa jpa-2.0 hibernate-mapping