Załóżmy, że masz samochód z kolekcją opon.JPA zapisuje "nowy" podmiot w odniesieniu do istniejącego podmiotu, używając tylko jego id?
@Entity
public class Car {
private Long id;
@OneToMany(mappedBy = "car")
private Set<Tire> tires = new HashSet<>();
}
@Entity
public class Tire {
private Long id;
...
}
Teraz, jeśli chcesz dodać nowy samochód i dodać istniejące Opony można przejść sprowadzić całą istniejących podmiotów opon do wypełnienia samochodu Set.
Czy można po prostu mieć niektóre identyfikatory opon i zapisać samochód bez uprzedniego przeniesienia całej jednostki Tire do pamięci? Czy istnieje sposób na zapisanie go za pomocą identyfikatora opony, jeśli był to tylko egzemplarz pojedynczej opony zamiast zestawu? Używanie JPA i API Criteria, a może JPQL.
Nie. Cały punkt JPA ma reprezentować i obsługiwać relacje, więc nie można hackować przy użyciu wiedzy o tym, jak relacjinowalnie są implementowane w warstwie db. – Zielu
Możesz użyć wykresów jednostki, aby pobrać częściowo wypełnione obiekty. – Zielu
Jakiej wersji JPA używasz? Testowałem tutaj z JPA 2.1 i nie ładuję całej kolekcji tylko po to, aby dodać pozycję do listy. – uaiHebert