@n199a
Java

Почему entity-класс не может существовать внутри другого entity-класса?

Имеется 2 entity-класса:
1) Point (точка)
Исходник

package entity;

import javax.persistence.Entity;
import javax.persistence.Id;

@Entity
public class Point {
    @Id
    private int id;

    private int x;
    private int y;

    public Point() {
    }

    public Point(int x, int y) {
        this.x = x;
        this.y = y;
    }

    public int getX() {
        return x;
    }

    public int getY() {
        return y;
    }
}


2) Quadrangle (четырехугольник)
Исходник

package entity;

import javax.persistence.Entity;
import javax.persistence.Id;

/**
 * Entity-класс "Четырехугольник"
 */

@Entity
public class Quadrangle {
    @Id
    private int id;

    public Quadrangle() {
    }

    public Quadrangle(Point p1, Point p2, Point p3, Point p4) {

    }

    @Override
    public String toString() {
        return "Quadrangle id #" + id;
    }
}



Четырёхугольник должен иметь четыре точки, т.е. принимает в конструкторе четыре entity-класса Point. Но почему нельзя создавать внутри класса Четырёхугольника переменные типа Point? Как тогда пользоваться координатами?
  • Вопрос задан
  • 74 просмотра
Пригласить эксперта
Ответы на вопрос 3
BorLaze
@BorLaze
Java developer
Почему нельзя?

Вполне можно - создается связь One-To-One, и вперед. В чем проблема?
Ответ написан
Комментировать
LaRN
@LaRN
Senior Developer
Эти аннотации в итоге нужны для описания взаимоотношений сущностей БД.
Одна сущность может быть вложена в другую, но нужно указать взаимоотношения между ними.
Вот тут есть описание:
https://www.tutorialspoint.com/jpa/jpa_entity_rela...
Смотрите аннотации:
@ManyToOne Relation
@OneToMany Relation
@OneToOne Relation
@ManyToMany Relation
Ответ написан
Комментировать
azerphoenix
@azerphoenix Куратор тега Java
Java Software Engineer
Мой ответ не совсем является ответом на ваш вопрос...
но если вы хотите описать сущность некоего геогрфического объекта и сохранить в БД, то смотрите в сторону WKT || JTS.
Например, MULTIPOLYGON (30 31, 29 28, 27 26, 24 23) вместо Quadrangle
Ну и POINT (30 31) вместо Point
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы