2011-11-29 36 views
0

我代表有以下的列的一些統計信息的視圖:Hibernate的複合鍵基於視圖

Count Month Year 

我要地圖是爲了使用Hibernate字段相同的實體。它看起來並不像Hibernate允許你映射沒有主鍵的實體,無論是複合鍵還是隻有一列。

這裏是我試圖映射到視圖類:

@Entity @Table(name="UserRegistration") 
public class UserRegistration { 

    private int year; 
    private int month; 
    private int count; 

    // Setters and getters omited...  
} 

如何申報就可以了複合鍵,包括所有列,使Hibernate的幸福嗎?

回答

1

我對Java相當陌生,所以這個解決方案可能看起來很粗糙。

請隨時提供更優雅的!

這就是代碼應該是什麼樣子:

// UserRegistrationPk.java file 
@Embeddable 
public class UserRegistrationPk implements Serializable { 

    private static final long serialVersionUID = 1L; 

    private int year; 
    private int month; 
    private int count; 

    public int getCount() { 
     return count; 
    } 

    public void setCount(int count) { 
     this.count = count; 
    } 

    public int getMonth() { 
     return month; 
    } 

    public void setMonth(int month) { 
     this.month = month; 
    } 

    public int getYear() { 
     return year; 
    } 

    public void setYear(int year) { 
     this.year = year; 
    } 
} 

然後

// UserRegistration.java file 
    @Entity 
@Table(name="UserRegistration") 
public class UserRegistration { 

    @EmbeddedId private UserRegistrationPk data; 

    public UserRegistrationPk getData() { 
     return data; 
    } 

    public void setData(UserRegistrationPk data) { 
     this.data = data; 
    } 
}