Согласно моей книге JPA 2.0 (и онлайн-документации), я должен иметь возможность смешивать доступ к полям и свойствам в рамках одной сущности или иерархии сущностей. Аннотация @ Access для класса указывает доступ по умолчанию. При помещении в поле или свойство getter @Access может указывать, что для этого поля следует переопределить значение по умолчанию.
@Entity
@Access(AccessType.FIELD)
Class Foo {
@Id
int id;
@Column(name = "myfield")
String myField;
@Column(name = "myProp")
@Access(AccessType.PROPERTY)
public int getMyProp () {
return 3;
}
public void setMyProp (int p) {
// do nothing
}
}
Этот класс должен привести к таблице с тремя столбцами. Однако с Hibernate это не так ... столбец "myProp" отсутствует в таблице, потому что, очевидно, Hibernate берет свое поле против свойства cue из идентификатора объекта и работает с ним ... полностью игнорируя спецификацию JPA в отношении @Access .
Кто-нибудь может это подтвердить или я где-то допустил глупую ошибку?