2011-11-29 78 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; 
    } 
}