Составной ключ Hibernate, основанный на представлении - PullRequest
0 голосов
/ 30 ноября 2011

У меня есть представление, представляющее некоторую статистическую информацию в следующих столбцах:

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 Ответ

1 голос
/ 30 ноября 2011

Я довольно новичок в 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;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...