1. ホーム
  2. java

[解決済み] mappedBy 未知のターゲットエンティティプロパティへの参照。

2022-02-04 10:17:54

質問

アノテーションされたオブジェクトに1対多のリレーションシップを設定する際に問題があります。

を持っています。

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

それなら

@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;

そして、この

@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;

私はここで何が間違っているのでしょうか

解決方法は?

その mappedBy 属性が参照するのは customer であるのに対し、プロパティは mCustomer そのため、エラーメッセージが表示されます。そこで、マッピングを次のように変更します。

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

または、entityプロパティを次のように変更します。 customer (私ならこうします)。

mappedBy参照は、"構成を見つけるために、私がコレクションを持っているものの「customer」という名前のビーンプロパティを見に行くことを示します。