使用休眠关系映射的mysql中逗号分隔的值

时间:2019-03-04 19:53:00

标签: java mysql hibernate

我是休眠的初学者,我使用servlet-jsp +休眠+ MySql + Maven开发了一个演示的Web应用程序。这是一个简单的国家/地区信息门户,管理员用户可以在其中添加国家/地区信息,例如国家/地区名称,该国使用的语言,该国家/地区参加的体育活动。

现在,我坚持将多对一映射,因为该国从事的许多体育活动,现在SportsCountry都是一个实体,我需要以这种方式发展关系我的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",对我有帮助

0 个答案:

没有答案