объединение сущностей в Java - PullRequest
1 голос
/ 27 марта 2012

Я пытаюсь избавиться от этой ошибки:

Exception Description: [class utilisateurs.modeles.Utilisateur] uses a non-entity [class java.util.Collection] as target entity in the relationship attribute [field adresses].
    at org.eclipse.persistence.exceptions.ValidationException.nonEntityTargetInRelationship(ValidationException.java:1343)
.........
org.eclipse.persistence.internal.jpa.deployment.PersistenceUnitProcessor.processORMetadata(PersistenceUnitProcessor.java:526)
    at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.predeploy(EntityManagerSetupImpl.java:1320)
    ... 36 more

со следующей сущностью:

   utilisateurs.modeles;

   import adresses.Adresse;
   import java.io.Serializable;
   import java.util.Collection;
   import javax.persistence.CascadeType;
   import javax.persistence.Entity;
   import javax.persistence.GeneratedValue;
   import javax.persistence.GenerationType;
   import javax.persistence.Id;
   import javax.persistence.ManyToOne;

   @Entity(name="Utilisateur")
   public class Utilisateur implements Serializable {
       private static final long serialVersionUID = 1L;
       @Id
       @GeneratedValue(strategy = GenerationType.AUTO)
       private int id;

       public void setAdresses(Collection<Adresse> adresses) {
           this.adresses = adresses;
       }

       private String firstname;
       private String lastname;
       private String login;


       @ManyToOne(cascade=CascadeType.PERSIST)
       private Collection<Adresse> adresses;
           public Collection<Adresse> getAdresses() {
           return adresses;
       }


       public Utilisateur() {
       }

       public Utilisateur(final String firstname, final String lastname, final String login) {
           this.firstname = firstname;
           this.lastname = lastname;
           this.login = login;
       }

   //getters and setters here

       @Override
       public int hashCode() {
           int hash = 0;
           hash += (int) id;
           return hash;
       }

       @Override
       public boolean equals(Object object) {
           // TODO: Warning - this method won't work in the case the id fields are not set
           if (!(object instanceof Utilisateur)) {
               return false;
           }
           Utilisateur other = (Utilisateur) object;
           if (this.id != other.id) {
               return false;
           }
           return true;
       }

          }

Если у вас есть идеи, пожалуйста.

1 Ответ

0 голосов
/ 27 марта 2012

Адрес не является сущностью, может быть, вы просто забыли аннотацию @Entity для этого класса?

Аннотация @ManyToOne определяет отношения между сущностями.

...