Is it possible to join 2 table with different column name? Here is skillmodel class
@Entity
@Table(name = "x_skill")
public class skillModel {
@Id
@Column(name="id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@Column(name="biodata_id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long biodataId;
@Column(name="skill_name")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private String skillName;
@Column(name="skill_level_id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long skillLevelId;
@Column(name="is_delete")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private boolean isDelete;
}
and this is my skilllevelmodel
@Entity
@Table(name = "x_skill_level")
public class SkillLevelModel {
private static final String ALL = null;
@Id
@Column(name="id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@Column(name="created_by")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long createdBy;
@Column(name="created_on")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Timestamp createdOn;
@Column(name="modified_by")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long modifiedBy;
@Column(name="modified_on")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Timestamp modifiedOn;
@Column(name="deleted_by")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long deletedBy;
@Column(name="deleted_on")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Timestamp deletedOn;
@Column(name="is_delete")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private boolean isDelete;
@Column(name="name")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private String name;
@Column(name="description")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private String description;
}
I tried to use join in skillmodel using :
@ManyToOne
@JoinColumn(name="skill_level_id", referencedColumnName="id", nullable=true, updatable=false, insertable=false)
private SkillModel skm;
but I got java.lang.IllegalArgumentException: Can not set long field com.minipro207.model.SkillModel.deletedBy to null value.
by the way the primary key from x_skill_level is named skill_level_id in x_skill's foreign key. Thank You :)
You need to add a @OneToMany
in your 2nd entity like so :
@Entity
@Table(name = "x_skill_level")
public class SkillLevelModel {
// ...
@OneToMany(mappedBy="skm", fetch=FetchType.LAZY)
private List<SkillModel> skills;
// ...
}
@Entity
@Table(name = "x_skill")
public class SkillModel {
// ...
@ManyToOne
@JoinColumn(name="skill_level_id", referencedColumnName="id", nullable=true, updatable=false, insertable=false)
private SkillLevelModel skm;
// ...
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.