Может быть, это глупый вопрос, но это меня беспокоит. Когда я впервые сохраняю сотрудника в базе данных (то есть у него нет назначенного идентификатора), я также хочу, чтобы его связанные транспортные средства сохранялись. < /p>
Это хорошо работает для меня в данный момент, за исключением того, что моя сохраненная транспортная организация не собирается автоматически на карту сотрудника, и в базе данных сотрудник по иностранному ключе в таблице транспортных средств в таблице транспортных средств. Я понимаю, что сотрудника нужно сначала сохранить, а затем спасен автомобиль. Может ли JPA сделать это автоматически для меня? Или мне нужно сделать что -то вроде следующего: < /p>
Vehicle vehicle1 = new Vehicle();
Set vehicles = new HashSet();
vehicles.add(vehicle1);
Employee newEmployee = new Employee("matt");
newEmployee.setVehicles(vehicles);
Employee savedEmployee = employeeDao.persistOrMerge(newEmployee);
vehicle1.setAssociatedEmployee(savedEmployee);
vehicleDao.persistOrMerge(vehicle1);
< /code>
Спасибо! < /p>
Изменить: как запрошено, вот мои сопоставления (без всех других методов и т. Д.) < /p>
@Entity
public class Employee {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name="employee_id")
private Long id;
@OneToMany(mappedBy="associatedEmployee", cascade=CascadeType.ALL)
private Set vehicles;
...
}
@Entity
public class Vehicle {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name="vehicle_id")
private Long id;
@ManyToOne
@JoinColumn(name="employee_id")
private Employee associatedEmployee;
...
}
< /code>
Я только что понял, что должен был иметь следующий метод, определенный в классе моего сотрудника: < /p>
public void addVehicle(Vehicle vehicle) {
vehicle.setAssociatedEmployee(this);
vehicles.add(vehicle);
}
< /code>
Теперь код выше будет выглядеть следующим образом: < /p>
Vehicle vehicle1 = new Vehicle();
Employee newEmployee = new Employee("matt");
newEmployee.addVehicle(vehicle1);
Employee savedEmployee = employeeDao.persistOrMerge(newEmployee);
< /code>
Гораздо проще и чище. Спасибо за помощь всем!
Подробнее здесь: https://stackoverflow.com/questions/179 ... lationship
JPA - Сохраняет один ко многим отношениям ⇐ JAVA
Программисты JAVA общаются здесь
1757912000
Anonymous
Может быть, это глупый вопрос, но это меня беспокоит. Когда я впервые сохраняю сотрудника в базе данных (то есть у него нет назначенного идентификатора), я также хочу, чтобы его связанные транспортные средства сохранялись. < /p>
Это хорошо работает для меня в данный момент, за исключением того, что моя сохраненная транспортная организация не собирается автоматически на карту сотрудника, и в базе данных сотрудник по иностранному ключе в таблице транспортных средств в таблице транспортных средств. Я понимаю, что сотрудника нужно сначала сохранить, а затем спасен автомобиль. Может ли JPA сделать это автоматически для меня? Или мне нужно сделать что -то вроде следующего: < /p>
Vehicle vehicle1 = new Vehicle();
Set vehicles = new HashSet();
vehicles.add(vehicle1);
Employee newEmployee = new Employee("matt");
newEmployee.setVehicles(vehicles);
Employee savedEmployee = employeeDao.persistOrMerge(newEmployee);
vehicle1.setAssociatedEmployee(savedEmployee);
vehicleDao.persistOrMerge(vehicle1);
< /code>
Спасибо! < /p>
Изменить: как запрошено, вот мои сопоставления (без всех других методов и т. Д.) < /p>
@Entity
public class Employee {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name="employee_id")
private Long id;
@OneToMany(mappedBy="associatedEmployee", cascade=CascadeType.ALL)
private Set vehicles;
...
}
@Entity
public class Vehicle {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name="vehicle_id")
private Long id;
@ManyToOne
@JoinColumn(name="employee_id")
private Employee associatedEmployee;
...
}
< /code>
Я только что понял, что должен был иметь следующий метод, определенный в классе моего сотрудника: < /p>
public void addVehicle(Vehicle vehicle) {
vehicle.setAssociatedEmployee(this);
vehicles.add(vehicle);
}
< /code>
Теперь код выше будет выглядеть следующим образом: < /p>
Vehicle vehicle1 = new Vehicle();
Employee newEmployee = new Employee("matt");
newEmployee.addVehicle(vehicle1);
Employee savedEmployee = employeeDao.persistOrMerge(newEmployee);
< /code>
Гораздо проще и чище. Спасибо за помощь всем!
Подробнее здесь: [url]https://stackoverflow.com/questions/1795649/jpa-persisting-a-one-to-many-relationship[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия