Если поле аннотировано insertable=false, updatable=false
, не означает ли это, что вы не можете ни вставить значение, ни изменить существующее значение? Почему вы хотите это сделать?
@Entity
public class Person {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@OneToMany(mappedBy="person", cascade=CascadeType.ALL)
private List<Address> addresses;
}
@Entity
public class Address {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@ManyToOne
@JoinColumn(name="ADDRESS_FK")
@Column(insertable=false, updatable=false)
private Person person;
}
java
jpa
jakarta-ee
eclipselink
Тханг Фам
источник
источник
insertable=false,updatable=false
на одной из сторон отношений.... to the @ManyToOne relationship with the ...
??Определение
insertable=false, updatable=false
полезно, когда вам нужно отобразить поле в сущности более одного раза, обычно:Это ИМО не семантическая вещь, а определенно техническая.
источник
Я хотел бы добавить к ответам BalusC и Pascal Thivent еще одно распространенное использование
insertable=false, updatable=false
:Рассмотрим столбец, который не является идентификатором, а является своего рода порядковым номером . Ответственность за расчет порядкового номера может не обязательно принадлежать приложению.
Например, порядковый номер начинается с 1000 и должен увеличиваться на единицу для каждого нового объекта. Это легко сделать, и это очень уместно, в базе данных, и в таких случаях эти конфигурации имеют смысл.
источник
Другим примером может быть столбец «create_on», в котором вы хотите, чтобы база данных обрабатывала дату создания
источник