我有一个表示一些统计信息的视图,其中包含以下几列:

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开心的所有列?

最佳答案

我对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;
    }
}

10-07 19:09
查看更多