首页 > 代码库 > BroadLeaf 下定义ORM对象:Province,City,Area
BroadLeaf 下定义ORM对象:Province,City,Area
要点:BroadLeaf框架下定义ORM对象需要先定义一个接口, 然后在persistence-unit 的配置中进行声明,如不声明会报错:no persistent classes found for query class
IProvince:
import java.io.Serializable;import javax.annotation.Nonnull;public interface IProvince extends Serializable{ @Nonnull public int getProv_Code(); @Nonnull public String getProv_Name();}
Province:
import javax.persistence.CascadeType;import javax.persistence.EmbeddedId;import javax.persistence.Entity;import javax.persistence.FetchType;import javax.persistence.OneToMany;import javax.persistence.Table;import org.hibernate.annotations.Fetch;import org.hibernate.annotations.FetchMode;@Entity@Table(name = "PROVINCE")@SuppressWarnings("serial")public class Province implements IProvince,Serializable{ @EmbeddedId private ProvincePK prov_PK; @OneToMany(mappedBy = "province", cascade = CascadeType.MERGE, fetch = FetchType.LAZY) @Fetch(FetchMode.SUBSELECT) private Set<City> cities; public int getProv_Code() { return prov_PK.getProv_Code(); } public String getProv_Name() { return prov_PK.getProv_Name(); } public Set<City> getCities() { return cities; } public void setCities(Set<City> cities) { this.cities = cities; } public ProvincePK getProv_PK() { return prov_PK; } public void setProv_PK(ProvincePK prov_PK) { this.prov_PK = prov_PK; } }
ProvincePK(联合主键类):
import java.io.Serializable;import javax.persistence.Embeddable;@Embeddable@SuppressWarnings("serial")public class ProvincePK implements Serializable{ private int prov_Code; private String prov_Name; @Override public boolean equals(Object obj) { if(obj instanceof ProvincePK){ if(((ProvincePK) obj).getProv_Code() == this.getProv_Code() && ((ProvincePK) obj).getProv_Name().equals(this.getProv_Name())){ return true; } } return false; } @Override public int hashCode() { return prov_Name.hashCode() + prov_Code; } public int getProv_Code() { return prov_Code; } public void setProv_Code(int prov_Code) { this.prov_Code = prov_Code; } public String getProv_Name() { return prov_Name; } public void setProv_Name(String prov_Name) { this.prov_Name = prov_Name; }}
ICity:
public interface ICity extends Serializable{ @Nonnull public int getCity_Code(); @Nonnull public String getCity_Name();}
City:
import org.hibernate.annotations.Fetch;import org.hibernate.annotations.FetchMode;@Entity@Table(name = "CITY")@SuppressWarnings("serial")public class City implements ICity,Serializable{ @EmbeddedId private CityPK city_PK; @OneToMany(mappedBy = "city", cascade = CascadeType.MERGE, fetch = FetchType.LAZY) @Fetch(FetchMode.SUBSELECT) private Set<Area> areas; @ManyToOne @JoinColumns({@JoinColumn(name = "prov_Code"),@JoinColumn(name = "prov_Name")}) private Province province; public CityPK getCity_PK() { return city_PK; } public void setCity_PK(CityPK city_PK) { this.city_PK = city_PK; } public Set<Area> getAreas() { return areas; } public void setAreas(Set<Area> areas) { this.areas = areas; } public Province getProvince() { return province; } public void setProvince(Province province) { this.province = province; } @Override public int getCity_Code() { return city_PK.getCity_Code(); } @Override public String getCity_Name() { return city_PK.getCity_Name(); } }
CityPK:
@Embeddable@SuppressWarnings("serial")public class CityPK implements Serializable{ private int city_Code; private String city_Name; @Override public boolean equals(Object obj) { if(obj instanceof ProvincePK){ if(((CityPK) obj).getCity_Code() == this.getCity_Code() && ((CityPK) obj).getCity_Name().equals(this.getCity_Name())){ return true; } } return false; } @Override public int hashCode() { return city_Name.hashCode() + city_Code; } public int getCity_Code() { return city_Code; } public void setCity_Code(int city_Code) { this.city_Code = city_Code; } public String getCity_Name() { return city_Name; } public void setCity_Name(String city_Name) { this.city_Name = city_Name; } }
IArea:
public interface IArea extends Serializable{ @Nonnull public int getArea_Code(); @Nonnull public String getArea_Name();}
Area:
@Entity@Table(name = "CITY_AREA")@SuppressWarnings("serial")public class Area implements IArea,Serializable{ @EmbeddedId private AreaPK area_PK; @ManyToOne @JoinColumns({@JoinColumn(name = "city_Code"),@JoinColumn(name = "city_Name")}) private City city; public AreaPK getArea_PK() { return area_PK; } public void setArea_PK(AreaPK area_PK) { this.area_PK = area_PK; } public City getCity() { return city; } public void setCity(City city) { this.city = city; } @Override public int getArea_Code() { return area_PK.getArea_Code(); } @Override public String getArea_Name() { return area_PK.getArea_Name(); } }
AreaPK:
@Embeddable@SuppressWarnings("serial")public class AreaPK implements Serializable{ private int area_Code; private String area_Name; @Override public boolean equals(Object obj) { if(obj instanceof ProvincePK){ if(((AreaPK) obj).getArea_Code() == this.getArea_Code() && ((AreaPK) obj).getArea_Name().equals(this.getArea_Name())){ return true; } } return false; } @Override public int hashCode() { return area_Name.hashCode() + area_Code; } public int getArea_Code() { return area_Code; } public void setArea_Code(int area_Code) { this.area_Code = area_Code; } public String getArea_Name() { return area_Name; } public void setArea_Name(String area_Name) { this.area_Name = area_Name; }}
BroadLeaf 下定义ORM对象:Province,City,Area
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。