Сейчас я перевожу какой-то устаревший код в спящий режим. В этом процессе я наткнулся на следующий класс:
public class Foo {
private Bar b1;
private Bar b2;
private Bar b3;
private Bar b4;
private Bar b5;
public Foo() {
}
public Foo(Bar b1, Bar b2, Bar b3, Bar b4, Bar b5) {
this.b1 = b1;
this.b2 = b2;
this.b3 = b3;
this.b4 = b4;
this.b5 = b5;
}
}
Теперь интересная часть состоит в том, что Foo
нельзя сопоставить ни с одной таблицей или представлением базы данных, в то время как Bar
будет сопоставлено с представлением. Теперь, очевидно, я не могу использовать здесь какие-либо аннотации, например @OneToOne
или @JoinColumn
, так как они основаны на существующей таблице / представлении.
Итак, я подумал об использовании HQL-запроса
select new com.fooCompany.test.Foo
(from Bar b1, from Bar b2, from Bar b3, from Bar b4, from Bar b5)
Это также немного громоздко и не "приятно в использовании".
Итак, мой вопрос, есть ли способ решить это с помощью аннотаций, или в настоящее время это единственный способ иметь дело с таким классом?
Если у вас есть какие-либо вопросы, не стесняйтесь спрашивать