Az annotációval ellátott lekérdező metódusoknak rendelkezniük kell egy beállító metódussal

Amikor egy egyedosztály úgy használ tulajdonság hozzáférést, hogy annotációkat helyez el a lekérdező és beállító metódusokon, akkor egy mező tárolásához a lekérdezős és beállító metódusokat egyaránt meg kell határozni. Az annotációval megjelölt lekérdező metódusokat, amelyekhez nem tartozik beállító metódus, az OpenJPA figyelmen kívül hagyja, míg ebben a helyzetben az EclipseLink egy kivételt dob.

Ez a szabály megjelöli a tulajdonság hozzáférő mezőket, amelyekben vannak annotációval ellátott lekérdező metódusok, de a beállító metódus hiányzik. Tekintse át az egyedmeghatározást, és módosítsa, hogy a szándéknak megfelelően viselkedjen. Ha azt szeretné, hogy a JPA szolgáltató figyelmen kívül hagyja a mezőt, akkor távolítsa el a lekérdező metódusok annotációit. Ha azt szeretné, hogy a mező tárolva legyen, akkor adjon hozzá egy beállító metódust.

A következő egyedosztályban a szabály megjelöli a getVersion metódust.

package entities;

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

@Entity
public class MissingSetter2  {
	
	private int id;
	private long time;
	
	public MissingSetter2 (int id) {
		this.id = id;
	}

	@Id
	public int getId() {
		return id;
	}


	public void setId(int id) {
		this.id = id;
	}
	
	// Ez a lekérdező metódus nincs ellátva annotációval, ezért nincs megjelölve. 
	public long getTime() {
		return time;
	}
	
	// Ez a lekérdező metódus meg van jelölve, mert tartalmaz annotációt, és nincs beállító metódus.
	@Version
	public double getVersion() {
		return 2.0;
	}
	
	public MissingSetter2() {
		time = 0;
	}
}

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.