Давайте начнем с сущности со встроенной структурой.
@Entity
public class MyEntity implements Serializable {
@Embedded private MyEmbeddedObject myEmbeddedObject;
...
}
@Embeddable
public class MyEmbeddedObject implements Serializable {
@Column(name = "first_col", precision = 38, scale = 18)
private Double firstCol;
...
}
Содержание здесь не важно. Эти объекты создаются в приложении Java FX. После создания или изменения они сохраняются в базе данных с использованием репозиториев JPA.
Я наблюдал следующее поведение и хотел бы знать, нормально ли это:
- Когда объект
MyEntity
создается в первый раз из моего интерфейса Java FX, JPA будет правильно хранить все в базе данных, что является ожидаемым поведением. - Когда я пытаюсь изменить
firstCol
из интерфейса, это изменениеотображается правильно, но его значение не будет сохранено, если MyEmbeddedObject
не является защищенной переменной MyObject
. Если MyEmbeddedObject
является приватным, оно становится не подлежащим изменению. Значения всегда можно отобразить, но нельзя изменить.
У кого-нибудь есть идеи, почему? Это не блокирующая ситуация, потому что у меня есть обходной путь. Мне любопытно, если кто-то знает, нормально ли это поведение.