@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 естьпроисходивших HibernateException в JPA
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], для класса: model s.Town
Я пытаюсь изменить значение DataBase,
города
towncode | название города | городской код 123 | AAA | 12345
456 | BBB | 67890
789 | CCC |
тогда, Teh ошибка не произошло ...
, но я хочу, чтобы не изменить это значение. Кто-нибудь знает решение этого?
Ваше сопоставление не имеет никакого смысла. Вы не можете использовать ManyToOne в поле типа List. Если это список, это означает, что существует несколько объектов, поэтому это может быть OneToMany или ManyToMany, но не ManyToOne. Более того, если у вас есть список городов, поле должно быть названо «городами», а не «городом». Это уменьшит путаницу. –
thanks.I отредактировал it.but, ошибка не удалена ... – user1212872
Вы не настроили идентификатор своих объектов. И запрос неверен, поскольку поле называется «zipCode», а не «zipcode» –