Произошло HibernateException в JPA - PullRequest
0 голосов
/ 20 февраля 2012
@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;
}

База данных есть,

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

Я пытаюсь изменить значение базы данных,

Город * * 1016

код города | название города | CityCode 123 | AAA | 12345

456 | BBB | 67890

789 | CCC | 12321

тогда ошибка не произошла ...

но я не хочу менять это значение. Кто-нибудь знает решение этого?

1 Ответ

0 голосов
/ 20 февраля 2012

Может быть, вы можете попробовать это.

@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;

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...