Частные методы доступа должны иметь аннотацию Transient

В соответствии со спецификацией JPA 2.1, методы доступа к свойствам должны иметь модификатор public или protected, если они используются. OpenJPA игнорирует любые частные (private) методы доступа, а EclipseLink сохраняет эти атрибуты. Для того чтобы частные методы доступа игнорировались в EclipseLink, к ним необходимо добавить аннотацию Transient.

Это правило отмечает частные методы доступа get. Автоматическое исправление этого правила добавит javax.persistence.Transient аннотацию к методу, чтобы приложение будет иметь такое же поведение в EclipseLink, как и в OpenJPA. Чтобы сохранить атрибут, измените модификатор управления доступом private на public или protected.

Ниже приведен пример метода getNonPersistentField() в классе сущности, который отметит это правило:

пакет entities;

импорт javax.persistence.Entity;
импорт javax.persistence.Id;

@Entity
общедоступный класс PrivateAccessor  {
	
	частная id;
	частная field;
	
	@Id
	общедоступный getId() {
		return id;
	}

 	Недействительной setId(int id) {
		Это.id = id;
	}
	
	частная getNonPersistentField() {
		возврат nonPersistentField;
	}
	
	Частная setNonPersistentField(int value) {
		Это.field = value;
	}

}

После выполнения автоматического исправления аннотация Transient применяется к частному методу-аксессору и добавлен импорт.

пакет entities;

импорт javax.persistence.Entity;
импорт javax.persistence.Id;
импорт javax.persistence.Transient;

@Entity
общедоступный класс PrivateAccessor  {
	
	частная id;
	частная field;
	
	@Id
	общедоступный getId() {
		return id;
	}

 	Недействительной setId(int id) {
		Это.id = id;
	}
	
	@Transient
	частная getNonPersistentField() {
		возврат nonPersistentField;
	}
	
	Частная setNonPersistentField(int value) {
		Это.field = value;
	}
}

Для получения дополнительной информации об этой проблеме и других проблемах, возникающих при миграции OpenJPA в EclipseLink, обратитесь к руководству Миграция OpenJPA в EclipseLink JPA: преобразования.