Hibernate OneToOne с определенным предложением - PullRequest
0 голосов
/ 11 апреля 2011

Если кто-то знает, как:

У меня есть сущность

@Entity
public class AnEntity {
    ...

    private String propertyA;
    private String propertyB;
    private String propertyC;
}

И строки propertyA, propertyB и propertyC хранятся в другой таблице со ссылкой на AnEntity, name иполя значений, что-то вроде:

@Entity
public class Property {
    ...

    private String name;
    private String value;
}

Могу ли я указать соединения OneToOne в AnEntity с предложением where, я хотел бы иметь что-то вроде:

@Entity
public class AnEntity {
    ...
    @OneToOne(table = "properties")
    @JoinColumn("anentity_id")
    @WhereJoinTable(name = "propertyA")
    private String propertyA;
    ...
}

Любая помощь приветствуется!Спасибо!

Ответы [ 2 ]

3 голосов
/ 11 апреля 2011

Я думаю, что самый простой способ сделать это:

@Entity 
public class AnEntity {
    @OneToMany
    @JoinColumn("aentity_id")
    @MapKey(name = "name")
    private Map<String, Property> properties;
    ...
    public getPropertyA() {
        return properties.get("propertyA");
    }
    ...
}
0 голосов
/ 11 апреля 2011

Не могли бы вы создать Entity для внешней таблицы и затем отобразить propertyA, propertyB и ProperyyC в качестве делегатов этой таблицы?

@Entity
public class AnEntity {

    @OneToOne(table = "properties")
    @JoinColumn("anentity_id")
    private Property property;

    public String getPropertyA() {
        return property.getValueA();
    }
}

Примечание: проверка на ноль опущена!: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...