我是休眠的初学者,我使用servlet-jsp +休眠+ MySql + Maven开发了一个演示的Web应用程序。这是一个简单的国家/地区信息门户,管理员用户可以在其中添加国家/地区信息,例如国家/地区名称,该国使用的语言,该国家/地区参加的体育活动。
现在,我坚持将多对一映射,因为该国从事的许多体育活动,现在Sports
和Country
都是一个实体,我需要以这种方式发展关系我的country
表中可以有多个逗号分隔的值。
我正在寻找类似下面的内容。
运动表
id name
1 football
2 cricket
3 hockey
4 baseball
国家/地区表
id name language sports
1 England English 1,2,4
2 Australia English 2,4
国家/地区型号
package com.javarnd.cip.model;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
@Entity
public class Country {
@Id
@GeneratedValue
@Column(name = "country_id")
private long countryId;
private String name;
@OneToOne
@JoinColumn(name = "lang_id")
private Language locale;
@OneToOne
@JoinColumn(name = "city_id")
private City capital;
@OneToMany
@JoinColumn(name = "sport_id")
private List<Sports> sportsList;
public long getCountryId() {
return countryId;
}
public void setCountryId(long countryId) {
this.countryId = countryId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Language getLocale() {
return locale;
}
public void setLocale(Language locale) {
this.locale = locale;
}
public City getCapital() {
return capital;
}
public void setCapital(City capital) {
this.capital = capital;
}
}
体育模式
package com.javarnd.cip.model;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
public class Sports {
@Id
@GeneratedValue
@Column(name = "sport_id")
private long sportId;
private String name;
public long getSportId() {
return sportId;
}
public void setSportId(long sportId) {
this.sportId = sportId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
我在这里如何使用"mappedBy"
,对我有帮助