Question

J'ai peu sur mon entité de validation, comme @NotNull, et une génération, comme

@Id
@GeneratedValue(strategy = AUTO)
@Column(name = "ID")
private Long id;

@Column
@GeneratedValue(strategy = GenerationType.AUTO)
private Long referenceNumber;

Cependant lors de l'appel EntityManager.merge() ces valeurs ne sont pas générées. champs NULL avec annotation @NotNull sont passés sans se plaindre. Même id n'est pas généré.

devrais-je changer cette génération sur une certaine façon? Comment et où?

Était-ce utile?

La solution

En plus de la réponse de kraftan:

  • Par défaut validation de haricot automatique JPA 2.0 fonctionne si le fournisseur de validation est « présent dans l'environnement », sinon il ne silencieusement fonctionne pas. Vous pouvez ajouter

    <validation-mode>CALLBACK</validation-mode>
    

    à persistence.xml afin de générer une erreur si le fournisseur de validation est introuvable.

  • JPA ne supporte pas la génération de propriétés arbitraires (non-ID). Certains fournisseurs de JPA peuvent avoir extensions .

Autres conseils

Merge() ne Invoke événement pré-insertion / pré-mise à jour des auditeurs par défaut. flush() après la merge() devrait le faire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top