Я работаю с jpa 2.0, и у меня есть поле в таблице базы данных, которая имеет значение по умолчанию, я помещаю это поле в мое определение объектов как insertable = false, чтобы при вставке сохранить значение по умолчанию, вставка выполнена правильно, но когда запрашивается объект, это поле является нулевым в сущности, однако, что оно было вставлено правильно.jpa2 заставить em обновить поле, установленное как insertable = false
Это мой код:
@Entity
@Table(name="SOME_TABLE")
public class SomeTable implements Serializable {
private static final long serialVersionUID = 1L;
@EmbeddedId
private SomeTablePK id;
@Column(name="X1")
private String x1;
**@Column(name="X2", insertable=false)**
private Date x2;
... more fields....
... setters and getters...
}
Есть ли способ заставить диспетчер сущностея обновить значение поля, которое я использовал в качестве Вставляемого = лжи? или что я могу сделать, чтобы исправить это?
спасибо.
PS. Важно отметить, что в моем persistence.xml и поместите следующую строку, чтобы отключить кеш.
<properties>
<property name="javax.persistence.sharedCache.mode" value="NONE"/>
</properties>
Спасибо за объяснение, поле, которое имеет значение по умолчанию, - это поле, которое не имеет ограничений, где и как я размещаю каскад аннотации = REFRESH ??? Thnx снова! – Mariah
Аннотации не будут работать, но само по себе, вам нужно будет вызвать 'entityManager.refresh (YOU_ENTITY)'. Каскадная аннотация будет работать только для кораблей отношения сущности. – uaiHebert
привет, спасибо за ответ, когда я пытаюсь сделать обновление после того, как сущность говорит: «EntityNotFoundException: Entity больше не существует», я использую jpa в EJB, как я могу это исправить? – Mariah