Как реализовать условие где в отношениях один к одному - PullRequest
0 голосов
/ 06 сентября 2018

Я пытаюсь реализовать приведенный ниже пример запроса в JPA. Это отношения один-на-один.

выберите * из Персона, Возраст, где человек, возраст между возрастом, возрастом и возрастом, возрастом

В моем реальном проекте у меня есть несколько условий Where, подобных этому, и я хочу знать, как наиболее эффективно добиться того же, используя аннотации.

Заранее спасибо.

@Entity
@Table(name = "PERSON")
public class Person 
{
    @Column(name = "NAME", nullable = false, precision = 0)
    private String name;

    @Column(name = "ADDRESS", nullable = false, precision = 0)
    private String address;

    @Column(name = "AGE", nullable = false, precision = 0)
    private int age;

    private BMIForAge bmi_age;

    **@OneToOne(optional = false, fetch = FetchType.EAGER)
    public BMIForAge getBmi_age() {
        return bmi_age;
        }

        public void setBmi_age(BMIForAge bmi_age) {
        this.bmi_age = bmi_age;
    }**
}


@Entity
@Table(name = "BMI_FOR_AGE")
public class BMIForAge
{
    @Column(name = "MIN_AGE", nullable = false, precision = 0)
    private int minAge;

    @Column(name = "MAX_AGE", nullable = false, precision = 0)
    private int maxAge;

    @Column(name = "BMI", nullable = false, precision = 0)
    private int bmi;
...
}

1 Ответ

0 голосов
/ 06 сентября 2018

С JPQL у вас будет что-то вроде:

select p from Person p join p.bmi_age b where p.age between b.minAge and b.maxAge;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...