Перевести в спящий режим @OneToOne с помощью singly @Entity

#java #hibernate #mapping

#java #перевести в спящий режим #сопоставление

Вопрос:

В настоящее время я перевожу некоторый устаревший код в спящий режим. В этом процессе я столкнулся со следующим классом:

 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)
  

Это также немного громоздко и не «приятно в использовании».

Итак, мой вопрос в том, есть ли способ решить это с помощью аннотаций, или это в настоящее время единственный способ справиться с подобным классом?


Если у вас есть какие-либо вопросы, не стесняйтесь задавать