PersistenceException s'est produite : org.mise en veille prolongée.exception à la règle.ConstraintViolationException: impossible d'insérer: [modèles.L'utilisateur]
J'ai cette exception!!
voici mon modèle de classe
@Entity
public class User extends Model {
@OneToMany(mappedBy="email", cascade=CascadeType.ALL)
public List<Photo> photo;
@Email
@Required
@Unique
public String email;
@Required
public String passwordHash;
@Required
public String education;
@Required
public String fname;
@Required
public String lname;
@Required
public Date dob;
@Required
public String gender;
@Required
public String country;
@Required
public Long phone;
@Required
public String status;
@Required
public String jobtitle;
@Required
public String company;
@Required
public String industry;
@Required
public Date addDate;
public String needConfirmation;
public User(String email, String password, String fname,
String lname, Date dob, String gender, String country,
Long phone, String status, String education, String jobtitle, String company, String industry) {
//all initialization here
}
}
pouvez-vous s'il vous plaît dites-moi où je vais mal
playframework× 2289
this is my photo class, and please tell me how can I allow JPA to generate my database
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package models;
import controllers.Users;
import javax.persistence.Entity;
import javax.persistence.ManyToOne;
import play.db.jpa.Model;
/**
*
* @author nPandey
*/
@Entity
public class Photo extends Model{
public String photoname;
@ManyToOne
public User email;
public String owner;
public Photo(){
}
public Photo(User email, String photo){
this.photoname=photo;
this.email=email;
this.owner=email.email;
}
}
- Pouvez-vous montrer le
Photo
classe ainsi? LemappedBy
valeur semble suspect. Quelque chose btw toujours essayer, c'est de déposer votre base de données et avoir votre JPA impl générer de nouveau.
Vous devez vous connecter pour publier un commentaire.
Vérifier que votre entité n'est pas manquant tout les champs requis lorsque l'appareil a persisté /mis à jour. Vérifiez également que les contraintes sont définies sur l'Utilisateur-table dans la DB (unique clés, clés étrangères, non null...).
jpa.ddl
-paramètre que vous souhaitez régler sur "create-drop", mais ne le laissez JAMAIS à ce paramètre dans la production, ou il va effacer la base de données de production).Votre
mappedBy
valeur n'a guère de sens. Il est utilisé sur le passif à la fin d'une bi-directionnel de l'association. Dans ces cas, il des points à l'attribut de l'autre classe de l'autre côté de la relation. Vous le signaler à l'un des attributs de laUser
classe. Peut-être votre Photo de classe a unemail
attribut, mais est-ce de typeUser
( je suppose que non). Donc, si c'est un bi-directionnelle de l'association, définir lamappedBy
valeur de l'attribut surPhoto
correspondante@ManyToOne
"revenir" à laUser
. Si c'est une association unidirectionnelle, retirez le mappedBy et peut-être utiliser les annotations @JoinColumn l'utilisation de la clé étrangère de la stratégie de mapping de unidirectionnel un-à-plusieursJ'ai été confronté à la même question et qu'elle s'est résolue par la modification de la relation liées à la notation de
OneToMany
àManyToMany
. Dans Mon cas, il n'y aManyToMany
relation entre l'Emploi et de la Table Personne et j'étais en train d'ajouter de la même liste de travaux à plusieurs personne de l'objet dans une boucle.Le problème était avec l'annotation est utilisée dans la Personne de l'Entité de la classe d'Emplois de l'Entité:
Essayez de modifier le code comme ci-dessous -
Dans Le Modèle Utilisateur
En Modèle Photo
Vérifier cette référence - http://en.wikibooks.org/wiki/Java_Persistence/OneToMany#Example_of_a_OneToMany_relationship_and_inverse_ManyToOne_annotations