mappedBy reference an unknown target entity property
对于这种错误,因为映射关系处理错误
@Entity
@Table(name = "source_data")
public class SourceData implements Serializable {
/**
* 对应table的信息
*/
@Column(nullable = false, length = 20)
@Size(min = 2, max = 20)
private String tableName;
/**
* 第5列的字段,为与s4导出的表的column对应
*/
@Id
@Column(nullable = false, length = 30)
private String sourceName;
/**
* 对应第7行信息
*/
@Column(nullable = false, length = 20)
private String classification;
/**
* 对应数据的输入类型,方便格式转换
*/
@Column(nullable = false, length = 20)
private String dataType;
/**
* 针对SourceName的说明
* 第8列的字段
*/
@Column(nullable = false, length = 50)
private String explanation;
@OneToMany(mappedBy = "sourceData")
private Set<Alias> aliases;
}
对于mappedBy的映射应该对应到Alias类中,可以看的Alias对应的类中有sourceData参数,
如果不加mappedBy,就会对生成一张映射表
@Entity
public class Alias implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@ManyToOne(cascade={CascadeType.MERGE,CascadeType.REFRESH},optional=false)
@JoinColumn(name="source_name", nullable=false)
private SourceData sourceData;
@Column(nullable = false, length = 30)
private String alias;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public SourceData getSourceData() {
return sourceData;
}
public void setSourceData(SourceData sourceData) {
this.sourceData = sourceData;
}
public String getAlias() {
return alias;
}
public void setAlias(String alias) {
this.alias = alias;
}
}