A privát hozzáférő metódusokat meg kell jelölni egy Transient annotációval

A JPA 2.1 specifikáció szerint, tulajdonság hozzáférés használatakor a tulajdonság hozzáférő metódusainak nyilvánosnak (public) vagy védettnek (protected) kell lenniük. Az OpenJPA figyelmen kívül hagyja a privát hozzáférő metódusokat, míg az EclipseLink tárolja ezeket az attribútumokat. A privát hozzáférő metódusok figyelmen kívül hagyásához az EclipseLink megvalósításban, a metódusoknak rendelkezniük kell egy Transient annotációval.

Ez a szabály megjelöli a privát hozzáférő lekérdező metódusokat. A szabályhoz tartozó gyorsjavítás hozzáadja a javax.persistence.Transient annotációt a metódushoz, hogy az alkalmazás ugyanúgy viselkedjen EclipseLink környezetben, mint OpenJPA környezetben. Az attribútum tárolásához ne futtassa a gyorsjavítást, hanem módosítsa a private hozzáférés-felügyeleti módosítót public vagy protected módosítóra.

Például a szabály megjelöli a getNonPersistentField() metódust a következő egyedosztályban:

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;
	}

}

A gyorsjavítás futtatása után a Transient annotáció alkalmazásra kerül a private hozzáférő metódusra, és hozzáadásra kerül az importálás.

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;
	}
}

A problémával és más OpenJPA - EclipseLink átállítási problémákkal kapcsolatos információkért tekintse meg az OpenJPA - EclipseLink JPA átállítás: Leképezések útmutatót.