2013-10-06 5 views
7

私は、休止状態を使用するための簡単な練習アプリケーションに取り組んでいます。それはメーカーが多くの携帯電話を持つことができるようにシンプルなマッピングを持っています。しかし、携帯電話は単一の製造業者によってしか製造することができない。コードがすべきだと私は思っています。:mappedByは、未知のターゲットエンティティプロパティを参照します。

package mobileconsumers.entity.dto; 
import javax.persistence.Column; 
import javax.persistence.Entity; 
import javax.persistence.FetchType; 
import javax.persistence.GeneratedValue; 
import javax.persistence.GenerationType; 
import javax.persistence.Id; 
import javax.persistence.JoinColumn; 
import javax.persistence.ManyToOne; 
import javax.persistence.Table; 


@Entity 
@Table(name="ms_ref_mobile") 
public class MobileDTO { 

private Long id; 
private String model; 
private ManufacturerDTO manufacturerDTO; 

@Id 
@GeneratedValue(strategy=GenerationType.IDENTITY) 
@Column(name="MOBILE_ID") 
public Long getId() { 
    return id; 
} 
public void setId(Long id) { 
    this.id = id; 
} 
public String getModel() { 
    return model; 
} 
public void setModel(String model) { 
    this.model = model; 
} 
@ManyToOne(fetch=FetchType.LAZY) 
@JoinColumn(name="MANUFACTURER_ID") 
public ManufacturerDTO getManufacturer() { 
    return manufacturerDTO; 
} 
public void setManufacturer(ManufacturerDTO manufacturer) { 
    this.manufacturerDTO = manufacturer; 
} 


} 

これは、私は自分のサーバーを起動しようとすると、それはマッピングが私には罰金であるように思わ org.hibernate.AnnotationException: mappedBy reference anunknown target entity property: mobileconsumers.entity.dto.MobileDTO.manufacturerDTO in mobileconsumers.entity.dto.ManufacturerDTO.mobileDTOs ...と言って私にエラーを与える

package mobileconsumers.entity.dto; 

import java.util.HashSet; 
import java.util.Set; 

import javax.persistence.Column; 
import javax.persistence.Entity; 
import javax.persistence.FetchType; 
import javax.persistence.GeneratedValue; 
import javax.persistence.GenerationType; 
import javax.persistence.Id; 
import javax.persistence.OneToMany; 
import javax.persistence.Table; 

@Entity 
@Table(name="ms_ref_manufacturer") 
public class ManufacturerDTO { 

private Long id; 
private String name; 
private Set<MobileDTO> mobileDTOs = new HashSet<>(0); 

@Id 
@GeneratedValue(strategy=GenerationType.IDENTITY) 
@Column(name="MANUFACTURER_ID") 
public Long getId() { 
    return id; 
} 
public void setId(Long id) { 
    this.id = id; 
} 
@Column(name="NAME") 
public String getName() { 
    return name; 
} 
public void setName(String name) { 
    this.name = name; 
} 
@OneToMany(fetch=FetchType.LAZY,mappedBy="manufacturerDTO") 
public Set<MobileDTO> getMobileDTOs() { 
    return mobileDTOs; 
} 
public void setMobileDTOs(Set<MobileDTO> mobileDTOs) { 
    this.mobileDTOs = mobileDTOs; 
} 


} 

秒DTOです。私が逃しているものが本当にばかげているに違いない。目のちょうど必要なフレッシュな私のコードを見て、間違っていただきまし把握する..

答えて

7

変更mappedBy値、それは協会の@ManyToOnemanufacturerプロパティを参照するように:

@OneToMany(fetch=FetchType.LAZY,mappedBy="manufacturer") 
public Set<MobileDTO> getMobileDTOs() { 
    return mobileDTOs; 
} 
+0

はいています働いた。以下の答えはなぜ私に言いましたか?私はゲッターとセッターを作りながら何かが間違っていたと思う。どうもありがとうございました。 – SandeepKumar

+0

@SandeepKumarよろしくお願いします。 –

関連する問題