Это должно быть довольно наивно, но я сомневаюсь, когда следует использовать @Entity и @Embeddable.
Скажем, у меня есть класс User и Notification.
@Entity
public class User{
//other properties
@onetomany
private List<Notification> notifications;
}
@Entity
public class Notification{
//properties
}
Я понимаю, что будут таблицы для классов User и Notification, а также третья таблица для сопоставления.
Что делать, если я так делаю?
@Entity
public class User {
//other properties
@ElementCollection
private List<Notification> notifications;
}
@Embeddable
public class Notification{
//properties
}
Я знаю, что это не создаст таблицу для Notification. Но я все еще могу хранить объекты уведомлений. Я просмотрел документацию, но пару сомнений:
- Это зависит от того, хочу ли я видеть класс B как отдельную таблицу?
- Есть ли разница в производительности, создающая таблицу и встраиваемый объект?
- Что я не могу сделать с встраиваемым объектом, который я могу сделать с таблицей, отличной от прямого запроса таблицы?
ПРИМЕЧАНИЯ
Для тех, кто читает этот вопрос, этот question тоже может вам помочь.