Я developping веб-приложение (Spring J2EE/angularjs)Spring: проблема с OneToOne отношений
Я хочу, чтобы установить связь между двумя объектами:
гражданина (идентификатор, LastName, город)
город (ид , cityName)
Гражданин живет только в одном городе.
Мне нужно найти город от гражданина. Мне не нужно найти гражданина из города.
Я сделал это:
@Entity
@Table(name = "citizen")
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class Citizen implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column(name = "last_name")
private String lastName;
@OneToOne
private City city;
}
@Entity
@Table(name = "city")
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class City implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column(name = "city_name")
private String cityName;
}
В базе данных я вставил данные. Гражданин 1, 2 и 3 связаны с городом 1 и гражданина 4 связан с городом 2
Когда я пытаюсь загрузить все гражданин, я получаю сообщение об ошибке: было обнаружено более одной строки с данным идентификатором: 1, для класса: com.myApp.rh.domain.Citizen
Что не так в моих сущностях?
Благодаря
Поскольку один '' международное может иметь много 'Citizen', пожалуйста, измените его на' ManyToOne' вместо 'OneToOne' на' частный город города; 'и попробовать. Также вы можете показать свою логику, чтобы загрузить всех граждан, которых вы используете? –