Отображение JPA только для чтения

Toplink может использовать сопоставления только для чтения, когда несколько атрибутов объекта сопоставляются с одними и теми же полями в базе данных, но только одно из сопоставлений может записывать в поле.

имеет ли JPA такую функцию, как писать аннотации? У меня есть одна @ManyToOne и одна аннотация @Column, которые нужно сопоставить с тем же полем в базе данных.


    @ManyToOne(optional=false, fetch=FetchType.LAZY)
    @JoinColumn(name="USR_ID", referencedColumnName="USER_ID", nullable=false)
    private User user;

    /** @generated **/
    @Column(name="USER_ID", nullable=false, length=30)
    private String userId;

1 ответов


С здесь

аннотация столбца и элемент XML определяют вставляемые и обновляемые параметры. Они позволяют исключить этот столбец или поле внешнего ключа из инструкции SQL INSERT или UPDATE. Их можно использовать, если ограничения таблицы предотвращают операции вставки или обновления. Они также могут использоваться, если несколько атрибутов сопоставляются с одним и тем же столбцом базы данных, например с полем внешнего ключа через ManyToOne и Id или базовое сопоставление. Установочный обе вставные и обновляемый в false, эффективно пометить атрибут только для чтения.

Так

    @Column(name="USER_ID", nullable=false, length=30,
        updatable=false, insertable=false)
    private String userId;

должны сделать это