Błąd org.hibernate.TransientPropertyValueException: object references an unsaved transient instance - save the transient instance before flushing

0

Siemka tworzę coś na zasadzie systemu dla firm telekomunikacyjnych do pisania nowych umów i mam punkt sprzedaży i chciałbym dodać do tego punktu nowego użytkownika niestety ciągle dostaje taki błąd.

org.hibernate.TransientPropertyValueException: object references an unsaved transient instance - save the transient instance before flushing : pl.szymonciamaga.entity.User.point -> pl.szymonciamaga.entity.Point
import lombok.Data;
 
import javax.persistence.*;
import java.util.List;
 
@Data
@Entity
public class Point {
 
    @Id
    @GeneratedValue
    private Long id;
    private String idNumber;
 
    @ManyToOne
    private Section section;
    private String country;
    private String region;
    private String postalCode;
    private String city;
    private String street;
    private String houseNumber;
    private String flatNumber;
    private boolean inNetwork;
 
    @OneToMany(fetch = FetchType.EAGER, mappedBy = "point", cascade = CascadeType.ALL)
    private List<User> users;
 
    @ManyToOne
    private DistributionNetwork distributionNetwork;
    GET & SET
}
 
@Data
@Entity
@Table(name = "user")
public class User {
 
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String firstName;
    private String lastName;
 
    @NotEmpty
    @Email
    private String email;
 
    @NotEmpty
    private String password;
 
    @ManyToMany(cascade = CascadeType.PERSIST, fetch = FetchType.EAGER)
    private Set<UserRole> roles = new HashSet<>();
 
    @NotEmpty
    private String username;
    private boolean enabled;
 
    @ManyToOne
    @JoinColumn(name = "point_id")
    private Point point;
    GET & SET
}
1

Kiedy ten błąd występuje? Prawdopodobnie próbujesz zapisac encje z referencją/referencjami na inne encje które nie zostały zapisane do bazy danych ;)

0

Wtedy kiedy chce dodać do już istniejącego punktu użytkownika ;)

0

Ten użytkownik nie został wcześniej zapisany do bazy danych?

0

Jasne, że został utworzyłem pole wyboru którego użytkownika chce dodać

0

Dzięki naprowadziłeś mnie pytaniami. Okazało się że w kontrolerze zapisywałem najpierw użytkownika a potem punkt po zamienieniu linijek wszystko zaczęło działać dzięki ! ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1