2017-01-24 16 views
5

Oluşturmakta olduğum bir hizmet, satıcının "harici kimliği" ile gelen harici bir sistemden veri alıyor. Bizim veritabanında bu verileri kaydetmek, ben de buna bir otomatik oluşturulan kimliği atar:Kimlik olmayan alanlara göre birleştirme için JPA özelliği var mı?

@Entity 
public class Content { 

    @Id 
    @GeneratedValue 
    private Long id; 

    private Long externalId; 

// many other fields 
} 

harici sistemi (aynı harici kimlikle) Aynı içerik için verileri yeniden gönderir, o içine serisi kaldırılan edilir bir müstakil İçerik POJO: yük ve oldukça id sahasından daha, externalId alanını kullanarak veritabanından ilgili satırı güncelleyebilirsiniz EntityManager.merge gibi bir şey

Content c = deserialize(json); 

var mı?

+0

Orada olduğunu sanmıyorum. Varlığınızı bir createQuery aracılığıyla aramak zorundasınız; Bu, externalId'de bir dizin oluşturma oluşturabilir. Yine de ilginç bir soru IMO – Eugene

cevap

0

Neredeyse, ancak dış istemci kimliğinizi bilmiyorsa, varlığı almak için bir sorgu kullanmanız gerekir (aslında yalnızca kimliğin kimliğine gereksinim duyarsınız). Kimliği aldıktan sonra, bağımsız bir varlık üzerinde ayarlayabilir ve birleştirme yapabilirsiniz.

Bu yardımcı olur umarım.

İlgili konular