Я использую Spring Hibernate с JPA.cascade = CascadeType.ALL и @Id @GeneratedValue (стратегии = GenerationType.IDENTITY).У меня есть две таблицы: одна - Пользователь, другая - фотографии, когда я хочу добавить новую фотографию. Мне нужно пойти и взять пользователя из базы данных, а затем установить его в качестве пользователя на фотографии с помощью photo.setUser (пользователь).Есть ли способ просто сделать User user = new User ();user.setId (1), а затем поместить его на фото с помощью photo.setUser () без полной ссылки. Я получаю отсоединенную сущность, которая сохраняется, когда я выполняю repo.save (photo), когда я устанавливаю только идентификатор.
Что я хочу сделать:
User user = new User();
user.setId(1);
photo.setUser(user);
repo.save(photo)
Там, где пользователь уже создан в базе данных и имеет несколько фотографий.
вместо:
User user = repo.findUserById(1);
photo.setUser(user);
repo.save(photo);
мои сущности:
@Entity
@Table(name = "users")
public class Photo implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
@OneToMany(cascade = CascadeType.ALL,mappedBy = "user", fetch = FetchType.EAGER)
private List<Photo> photos = new ArrayList<>();
@Entity
@Table(name = "photos")
public class Photo implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
@ManyToOne(fetch = FetchType.EAGER, cascade=CascadeType.ALL)
@JoinColumn(name = "user_id")
private User user;