Os métodos do acessador privado devem ter uma anotação Transiente

De acordo com a especificação JPA 2.1, quando o acesso à propriedade é usado, os métodos do acessador da propriedade devem ser públicos ou protegidos. O OpenJPA ignora qualquer método do acessador privados, enquanto o EclipseLink persiste tais atributos. Para ignorar os métodos do acessador privado no EclipseLink, os métodos devem ter uma anotação Transiente.

Esta regra sinaliza métodos getter do acessador privado. A correção rápida para esta regra inclui a anotação javax.persistence.Transient no método, de forma que o aplicativo tenha o mesmo comportamento no EclipseLink que ele tem com o OpenJPA. Para persistir o atributo, não execute a correção rápida e, em vez disso, altere o modificador do controle de acesso private para public ou protected.

Por exemplo, a regra sinaliza o método getNonPersistentField() na classe de entidade a seguir:

package entities;

import javax.persistence.Entity;
import javax.persistence.Id;

@Entity
public class PrivateAccessor  {
	
	private int id;
	private int field;
	
	@Id
	public int getId() {
		return id;
	}

 	public void setId(int id) {
		this.id = id;
	}
	
	private int getNonPersistentField() {
		return nonPersistentField;
	}
	
	private void setNonPersistentField(int value) {
		this.field = value;
	}

}

Após a correção rápida ser executada, a anotação Transient é aplicada no método do acessador private e a importação é incluída.

package entities;

import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Transient;

@Entity
public class PrivateAccessor  {
	
	private int id;
	private int field;
	
	@Id
	public int getId() {
		return id;
	}

 	public void setId(int id) {
		this.id = id;
	}
	
	@Transient
	private int getNonPersistentField() {
		return nonPersistentField;
	}
	
	private void setNonPersistentField(int value) {
		this.field = value;
	}
}

Para obter informações sobre esse problema e outros problemas de migração do OpenJPA para o EclipseLink, consulte o guia Migração do OpenJPA para o EclipseLink JPA: mapeamentos.