2016-03-23 22 views
0

Veritabanı geçiş aracı yapıyorum ve çok kullanışsız bir kaynak veritabanı ile uğraşıyorum. Temelde 40-50 kolondan oluşan dev bir masa. Ancak, bu sütunların hepsi benim için yararlı değildir. Sadece bir düzine kadar falan istiyorum. Verileri aldıktan sonra, geçişin hedef ucundaki her şeyi ele alacak bir web hizmetine istekte bulunuyorum.Yalnızca bir tablonun bazı sütunlarıyla eşlenen bir varlığa sahip olabilir miyim?

Seçeneklerim, temel olarak yalnızca istediğim sütunları seçmek veya istediğim sütunları eşleyen bir Varlık oluşturmak için manuel olarak sorgular oluşturuyor. Ben JPA kullanarak bu kadar aşina değilim ki, bu mümkün veya tamam olup olmadığından emin değilim. veritabanında sütunlar ise

Ben mesela, ben açıklama

Column A | Column B | Column C | Column D 

Will EclipseLink haritası yalnızca sütunları

@Entity 
class SomeEntity{ 

    @Column(name = "ColumnA") 
    private String columnA; 
    @Column(name = "ColumnB") 
    private String columnB; 
} 

gibi bir şey yapabilir ya da sütunları eşleştirmek için çalışıyor şikayet edecek Varlığımdaki var olmayan alanlara db mi? @Transient'in kalıcı olmaması gereken alanları işaretleyeceğini biliyorum. Ama bunun tersini yapmak ve veritabanı sütunlarını görmezden gelmek ve tabloyu kısmen bir sınıfa ayırmak istiyorum.

+2

Salt okunurlarsa, yalnızca birkaç sütunu varlıklar ile eşleştirebilirsiniz, bununla ilgili hiçbir sorun yoktur. Aldığınızda, yalnızca @ Entity'de bildirdiğiniz sütunlar olur. Güvenli olmak için uygulama düzeyinde değişmezliği zorlamak için “korumalı” ayarlayıcılar yapın. –

+0

Temel olarak evet, ama her durumda bir '@ Id' (veya eşdeğer) tanımlamanız gerekiyor. Kabul edilen cevapta önerildiği gibi, veritabanı düzeyinde bir görünüm oluşturmaya gerek yoktur. – stg

cevap

1

Bir görünüm oluşturmalısınız. Görünümü, ilgili olduğunu düşündüğünüz kadar çok kolonu tutun. Bu sütunları bir sınıftaki alanlar olarak tanımlayın ve bunları her zamanki gibi hazırda bekleyen ek açıklamalarla bağlayın. Ancak, yalnızca bir görünümde seçimleri gerçekleştirebileceğinizden ve ekleme/güncelleme/silme işlemlerinin söz konusu olmadığından emin olun.

+0

Masif tabla sadece okunur, bu nedenle sadece seçimleri yapmak iyidir. Bir görüşün ne olduğunu açıklayabilir misiniz? Yukarıdaki örneğimde ne olur? – JMD83

+1

@ JMD83 kanalları DB düzeyinde oluşturulur, bazı tabloların birleştirilmesi gerekmedikçe gerçekten onlara ihtiyacınız olmaz. –

İlgili konular