Как сохранить один и тот же объект в нескольких списках в Hibernate, используя JPA - PullRequest
0 голосов
/ 07 марта 2011

Я очень плохо знаком с Hibernate, так что это, вероятно, будет легкой задачей для вас, ребята.

Как сказано в теме, я пытаюсь ссылаться на одну и ту же сущность в нескольких списках.Но когда я пытаюсь это сделать, я получаю исключение: «Дублирующая запись« 5 »для ключа« Military_id »».Я погуглил, но не смог найти решение своей проблемы.

У меня есть объект с именем MilitaryUnitData, например:

@Entity
public class MilitaryUnitData implements IMovable{
   private long Id;

//snip

   @Id
   @GeneratedValue(strategy=GenerationType.TABLE)
   public long getId() {
      return Id;
   }
   public void setId(long id) {
      Id = id;
   }

       //snip
}

, и класс City, в котором я хочу хранить свои подразделения.1008 *

@Entity
public class CityData {

private Collection<MilitaryUnitData> military = new ArrayList<MilitaryUnitData>();
private String name;

//snip

@Id
   public String getName() {
      return name;
   }

   public void setName(String name) {
      this.name = name;
   }

@OneToMany
   @Column(nullable=false)
   public Collection<MilitaryUnitData> getMilitary() {
      return military;
   }

   public void setMilitary(Collection<MilitaryUnitData> military) {
      this.military = military;
   }

//snip
}

Проблема возникает, когда я хочу разместить Юнит в 2 города одновременно.Как мне изменить отображение, чтобы добиться этого?

Спасибо заранее.

1 Ответ

2 голосов
/ 07 марта 2011

Я пытаюсь сослаться на одну и ту же сущность в нескольких списках Посмотрев на ваш код, я думаю, вы имеете в виду, что один и тот же MilitaryUnitData используется в нескольких CityData?

ЕСЛИ это правильно, чем реальный корабль - это корабль отношений M: N, и вам нужно использовать @ManyToMany вместо @OneToMany.

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