101 votes

mappedPar référence à une propriété d'entité cible inconnue

Je rencontre un problème lors de la configuration d'une relation un à plusieurs dans mon objet annoté.

J'ai ce qui suit :

 @MappedSuperclass
public abstract class MappedModel
{
    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    @Column(name="id",nullable=false,unique=true)
    private Long mId;

ensuite ceci

 @Entity
@Table(name="customer")
public class Customer extends MappedModel implements Serializable
{

    /**
   * 
   */
  private static final long serialVersionUID = -2543425088717298236L;


  /** The collection of stores. */
    @OneToMany(mappedBy = "customer", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
  private Collection<Store> stores;

et ça

 @Entity
@Table(name="store")
public class Store extends MappedModel implements Serializable
{

    /**
   * 
   */
  private static final long serialVersionUID = -9017650847571487336L;

  /** many stores have a single customer **/
  @ManyToOne(fetch = FetchType.LAZY)
  @JoinColumn (name="customer_id",referencedColumnName="id",nullable=false,unique=true)
  private Customer mCustomer;

qu'est-ce que je fais de mal ici

178voto

Pascal Thivent Points 295221

L' mappedBy fait référence à customer tandis que la propriété est mCustomer , d'où le message d'erreur. Donc, soit changez votre mappage en :

 /** The collection of stores. */
@OneToMany(mappedBy = "mCustomer", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
private Collection<Store> stores;

Ou changez la propriété d'entité en customer (ce que je ferais).

La référence mappedBy indique "Allez regarder sur la propriété du bean nommée 'client' sur la chose dont j'ai une collection pour trouver la configuration."

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X