Back to questions
Иннотех
Junior — Middle
62
Можете ли вы объяснить концепцию Embeddable в JPA и как она используется для встраивания объектов внутри сущностей?
Companies where asked
Answer from AI
sobes.tech AI
В JPA аннотация @Embeddable используется для обозначения класса, объекты которого можно встроить в сущность как часть её состояния, но который сам по себе не является отдельной сущностью с собственным идентификатором.
Это удобно, когда нужно сгруппировать несколько полей в отдельный объект для лучшей организации кода и повторного использования.
Например, если у сущности User есть адрес, который состоит из улицы, города и почтового индекса, можно создать класс Address с аннотацией @Embeddable и встроить его в User:
@Embeddable
public class Address {
private String street;
private String city;
private String zipCode;
// геттеры и сеттеры
}
@Entity
public class User {
@Id
private Long id;
private String name;
@Embedded
private Address address;
// геттеры и сеттеры
}
В этом примере поля street, city и zipCode будут храниться в таблице User как колонки, а не в отдельной таблице. Это упрощает структуру базы и позволяет логически группировать связанные данные.