Это должно быть довольно наивно, но я сомневаюсь, когда следует использовать @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 тоже может вам помочь.