Странное наследство в спящем режиме - PullRequest
2 голосов
/ 26 января 2012

У меня есть таблица в sql, как это:

id = 1, type = 1, description = "something"
id = 2, type = 1, description = "something else"
id = 1, type = 2, description = "another class"
id = 2, type = 2, description = "something"

Я хотел бы создать два класса, которые наследуются от одного класса. И дискриминатор должен быть типа. Проблема в том, что идентификатор может повторяться для каждого из подтипов.

Когда у меня есть связь @ManyToOne с другим классом Hibernate, не используйте type, только идентификатор.

1 Ответ

0 голосов
/ 26 января 2012
class Base
{
    // map these two as compositeId
    protected int id;
    protected int type;
}

class A extends Base
{
    public A()
    {
        type = 1;
    }
}

@JoinColumns(... a_id, a_type ...)
property A referencedA;

или

class Base
{
    // map as id
    protected int id;

    // map to type
    protected int type;
}

@where("type=1")
class A extends Base
{
    public A()
    {
        type = 1;
    }
}

@Many-to-any(... idcolumn: "a_id", typecolumn: "a_type" ...)
public A referencedA;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...