2012-05-29 22 views
7

'u kullanmaktadır. PlayFramework'ı kullanıyorum ve gerçekten beğendim. Ben mesela bana user masam var, tablodan veri kapmak istiyorum, ben şu sözdizimini kullanın:Kompleks, Play Framework ve Ebean

List<User> users = User.find.where().eq("email", email).findList(); 

Sorum ben kullanıcı nesnesini aldığımda, bir id sütunu olması. Bu id değeri ile diğer tablolara eşleştirebilir ve bu tabloların id'ları daha fazla tabloya eşlenebilir, bu yüzden birkaç tablo arasında temel birleştirme kavramı. Yukarıdaki sözdizimi ile bunu nasıl uygulayacağını açıklayan herhangi bir örnek veya yer var mı?

Kendimi bulmaya çalıştım ve yapamadım, sadece bu noktada düşünebileceğim bir şekilde düz sql kullanmamayı tercih ettiğim ifadeleri kullanmak. modelleri arasında

Relationships@OneToMany gibi yaygın JPA ek açıklamaları içeren ayarlanır kalvish

cevap

16

ellou', @ManyToOne, @OneToOne vb kullanıcının Soru için kullanıcı tablo için User.java model ve Question.java modeli var ise

yapabilirsiniz @OneToMany ile onlara katılmak (içeren bir tane User Birçok Question ler)

Kullanıcı

@Entity 
public class User extends Model { 
    @Id 
    public Long id; 

    public String email; 

    @OneToMany 
    public List<Question> questions; 
} 

Soru

@Entity 
public class Question extends Model { 
    @Id 
    public Long id; 

    public String question; 
} 

Eğer denetleyici, Ebean varsayılan olarak 'katılır' gerçekleştirecek bir kullanıcı seçeceksiniz ve hem de kullanıcının tüm soruları alıp bunu: Varsayılan olarak

User user = User.find.where().eq("email", email).findUnique(); 
List<Question> usersQuestion = user.questions; 

Ebean, tüm nesnenin özelliklerini ve ilişkilerini getirir, böylece alt sorgular oluşturmanıza gerek yoktur. Tabii ki sadece şu anda gerekli olan verileri seçebilir veya seçebilir/seçebilirsin. At

official Ebean documentation page sen, ilişkinin genel açıklama bölümünde 11.6.2 Relationships mevcuttur oldukça iyi Referans kılavuzunu (pdf) bulabilirsiniz. bölüm 4.1.2 Query yılında

örnek (ikinci) Cevabınız için select() ve fetch()

+1

Merhaba Marcus kullanımı, teşekkür ile "kısmi" nesne almak nasıl eklendiğini gösteren yoktur. Şu anda kılavuza bakıyordum ve bir soru sorup soramayacağımı merak ediyorum ... bölüm 4.1.5 OneToMany, ManyToOne, vs.'yi anlatıyor. Ama hangi sütunların haritalandığını nereden biliyor? Benim bir sütunum var "benim" ve başka bir tabloda bir sütun "id" ile eşleşiyor, bunu belirtmenin bir yolu var mı? – KVISH

+0

Ebean, modelin değişiminde uygun DDL oluşturmak için yeterlidir. Bu gerçek durumda sakının, ama gerçekten iyi bir fikir, başka bir test projesi oluşturmak ve sadece doğrudan Ebean dan öğrenmek – biesior

+0

@ KVISH Ben sizin aradığınız şeyin bence birleştirme sütununun adını belirtebileceğiniz JPA ek açıklaması @ JoinColumn olduğunu düşünüyorum kullanmak. –

İlgili konular