2016-10-14 3 views
0

Рассмотрим следующие объекты:Сделать свойства отображенной объекта только для чтения

@Entity 
public class MyEntity implements Serializable { 

    @Id 
    private String id; 

    @OneToOne 
    private Person person; 
} 

@Entity 
public class Person implements Serializable { 

    @Id 
    private String id; 

    private String name; 

    // ... many more properties which should be read-only 
} 

Иногда name отображенных Person модифицируется, и Hibernate генерирует операторы обновления. Но я не хочу, чтобы это произошло.

Есть ли способ пометить свойства отображаемых person только для чтения?

Изменения в ид отображенной person (я имею в виду, другая person прикрепляется к MyEntity) следует, однако, до сих пор делают Hibernate обновление MyEntity.

ответ

1

@Column(updatable=false)

Из документов: обновляемый (по желанию): будет ли столбец будет частью оператора обновления (по умолчанию верно)

+0

ли принимать во внимание это, что я все еще хочу, чтобы человек myEntity может быть изменен. Только его свойства, такие как «имя», должны быть доступны только для чтения. (Я добавил информацию на вопрос для ясности) – yglodt

+0

Да, поставив '@Column (updatable = false)' '' '' '' '' '' ', этот столбец будет оставлен при обновлении сущности Person. Это не должно мешать вам назначать другого человека вашему родительскому объекту. – veljkost

+0

Хорошо. Мне трудно объяснить, что мне нужно ... Я хочу обновить Лица в целом. Только если они не отображаются в MyEntity. – yglodt

Смежные вопросы