Erreur not-null property references a null or transient value
Bonjour à tous,
Je réalise une application, où il y a une messagerie basique entre les utilisateurs. Quand je réalise ma requete PostMan pour créer un nouveau message il me met cela comme erreur :
"not-null property references a null or transient value : fr.dawan.enrechercheactive.entitie.Utilisateur.email; nested exception is org.hibernate.PropertyValueException: not-null property references a null or transient value : fr.dawan.enrechercheactive.entitie.Utilisateur.email",
Je vous mets la classe Message :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| @Entity
public class Message implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@Column(nullable = false)
private String sujet;
@Column(nullable = false)
private String contenu;
private LocalDateTime dateHeure;
private boolean estLu;
@Enumerated(EnumType.STRING)
private StatutEnvoi statutEnvoi;
@ManyToOne(cascade = CascadeType.ALL)
private Utilisateur expediteur;
@ManyToOne(cascade = CascadeType.ALL)
private Utilisateur destinataire;
@Version
private int version; |
La classe Utilisateur :
Code:
1 2 3 4 5
| @OneToMany(mappedBy = "expediteur")
private Set<Message> messages;
@OneToMany(mappedBy = "destinataire")
private Set<Message> recuMessage; |
La classe MessageDTO :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| public class MessageDto implements Serializable {
private long id;
private String sujet;
private String contenu;
private LocalDateTime dateHeure;
private boolean estLu;
private StatutEnvoi statutEnvoi;
private int version;
private long expediteurId;
private long destinataireId; |
La classe MessageService :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| @Override
public MessageDto nouveauMessage (long id, MessageDto messageDto) throws Exception {
Optional<Utilisateur>utilisateurExpediteur = utilisateurRepository.findById(id);
Message nouvMessage = DtoConvertisseur.convert(messageDto, Message.class);
nouvMessage.setContenu(nouvMessage.getContenu());
nouvMessage.setSujet(nouvMessage.getSujet());
nouvMessage.setDateHeure(LocalDateTime.now());
messageRepository.save(nouvMessage);
MessageDto messageDto1 = DtoConvertisseur.convert(nouvMessage, MessageDto.class);
return messageDto1; |
Et le controller Message :
Code:
1 2 3 4 5
| @PostMapping(value = "/{uid}/nouveau-message", consumes = "application/json", produces = "application/json")
public ResponseEntity<MessageDto> nouveauMessage(@PathVariable("uid") long uid, @RequestBody MessageDto mDto) throws Exception{
MessageDto message = messageServiceImpl.nouveauMessage(uid, mDto);
return ResponseEntity.status(HttpStatus.CREATED).body(message);
} |