@Entity
public class ZipCode extends GenericModel {
public String zipCode;
public String townCode;
@ManyToOne(targetEntity=Town.class,fetch=LAZY)
@JoinColumn(referencedColumnName="townCode",name="townCode",nullable=true,insertable=false,updatable=false)
public Town town;
}
@Entity
public class Town extends GenericModel {
public String townCode;
public String townName;
public String cityCode;
@ManyToOne(targetEntity=City.class,fetch=LAZY)
@JoinColumn(referencedColumnName="cityCode",name="cityCode",nullable=true,columnDefinition="city",insertable=false,updatable=false)
public City city;
}
@Entity
public class City extends GenericModel {
public String cityCode;
public String cityName;
public String prefectureCode;
@ManyToOne(targetEntity=Prefecture.class,fetch=LAZY)
@JoinColumn(referencedColumnName="prefectureCode",name="prefectureCode",nullable=true,columnDefinition="prefecture",insertable=false,updatable=false)
public Prefecture prefecture;
}
@Entity
public class Prefecture extends GenericModel {
public String prefectureCode;
public String prefectureName;
}
DataBase是,
ZipCode zipcode | towncode 111 | 123 222 | 456 Town towncode | townname | citycode 123 | AAA | 12345 456 | BBB | 67890 789 | CCC | 12345 City citycode | cityname | prefecturecode 12345 | XXX | 12 67890 | YYY | 34 Prefecture prefecturecode | prefecturename 12 | MMM 34 | NNN
并执行此操作,
List<ZipCode> zipCodes = ZipCode.find("zipcode = 111").<ZipCode>fetch();
发生此错误,
org.hibernate.HibernateException:找到了多个具有给定标识符的行:Town [null],用于类:models.Town
我尝试更改DataBase值,
镇
城镇代码| townname | citycode 123 | AAA | 12345
456 | BBB | 67890
789 | CCC |的 12321
然后,没有发生错误...
但是,我想不要改变这个值。 有谁知道这个的解决方案?
答案 0 :(得分:0)
可能你可以试试这个。
@Entity
public class Town extends GenericModel {
public String townCode;
public String townName;
public String cityCode;
}
@Entity
public class City extends GenericModel {
public String cityCode;
public String cityName;
public String prefectureCode;
@ManyToOne(targetEntity=Prefecture.class,fetch=LAZY)
@JoinColumn(referencedColumnName="prefectureCode",name="prefectureCode",nullable=true,columnDefinition="prefecture",insertable=false,updatable=false)
public Prefecture prefecture;
@OneToMany(targetEntity=Town.class,fetch=LAZY)
@JoinColumn(referencedColumnName="townCode",name="townCode",nullable=true,columnDefinition="city",insertable=false,updatable=false)
public List<Town> towns;
}