2016-04-07 6 views
0

ile sorunu , ŞehirAdı)Bahar veriler: OneToOne ilişki Ben bir webapp iki taraf arasında bir ilişki ayarlamak istediğiniz</p> <p>(Bahar J2EE/angularjs) developping am

Bir vatandaş sadece bir şehirde yaşıyor.

Vatandaşlardan bir şehir bulmalıyım. Bir şehirden bir vatandaş bulmak zorunda değilim.

@Entity 
@Table(name = "citizen") 
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE) 
public class Citizen implements Serializable { 
    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    private Long id; 

    @Column(name = "last_name") 
    private String lastName; 

    @OneToOne 
    private City city; 
} 



@Entity 
@Table(name = "city") 
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE) 
public class City implements Serializable { 
    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    private Long id; 

    @Column(name = "city_name") 
    private String cityName; 
} 

veritabanı I veriler girildikten:

O yaptık. Bütün vatandaş yüklemeye çalıştığınızda Vatandaş 1, 2 ve 3 Şehir 1 ve Yurttaş 4 bağlantılıdır Şehir 2

bağlantılıdır, ben hata alıyorum: Verilen tanımlayıcı ile birden fazla satır bulunmuştur : 1, sınıf için: com.myApp.rh.domain.Citizen

Tarafımdaki sorun nedir?

Teşekkür

+0

yana bir 'City' birçok' Citizen', 'özel Şehir şehir' OneToOne' yerine ManyToOne' 'getirmek için lütfen değiştirin olabilir;' ve deneyin. Ayrıca, kullandığınız tüm vatandaşları yüklemek için mantığınızı gösterebilir misiniz? –

cevap

0

sizin Vatandaş varlıktaki @JoinColumn ek açıklama eksik gibi görünüyor.

@Entity 
@Table(name = "citizen") 
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE) 
public class Citizen implements Serializable { 
    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    private Long id; 

    @Column(name = "last_name") 
    private String lastName; 

    @OneToOne 
    @JoinColumn(name = "id", unique = true) 
    private City city; 
} 



@Entity 
@Table(name = "city") 
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE) 
public class City implements Serializable { 
    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    private Long id; 

    @Column(name = "city_name") 
    private String cityName; 
}