Amikor egy Java Persistence API (JPA) egyedosztálynak van egy argumentumokkal rendelkező konstruktora, az osztálynak kell tartalmaznia egy argumentumok nélküli konstruktort is. Az OpenJPA megvalósítás automatikusan előállítja az argumentumok nélküli konstruktort, azonban az EclipseLink megvalósítás nem.
Ez a szabály @Entity vagy @MappedSuperclass
annotációval rendelkező egyedosztályokat keres. A szabály megjelöli a
konstruktorral rendelkező egyedosztályokat, amelyeknek nincs egy
argumentumok nélküli konstruktora is.
Az automatikus javítás egy üres, argumentum nélküli konstruktort ad az osztályhoz.
Például a szabály megjelöli a következő egyedosztályt:
import javax.persistence.Entity; import javax.persistence.Id; @Entity nyilvános osztály MissingNoArgConstructorentitás { @Id privát int id; nyilvános MissingNoArgConstructorEntitás (int id) { ez.id = id; }}
Az automatikus javítás hozzáadja az argumentum nélküli konstruktort:
import javax.persistence.Entity; import javax.persistence.Id; @Entity nyilvános osztály MissingNoArgConstructorentitás { @Id privát int id; nyilvános MissingNoArgConstructorEntity () { } nyilvános MissingNoArgConstructorentitás (int id) { ez.id = id; }}
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.