Mezők figyelmen kívül hagyása a JPA @Transient Annotation segítségével
1. Bemutatkozás
Amikor egy objektum-relációs leképezés (ORM) keretrendszer segítségével Java objektumokat tárolunk adatbázis-rekordokba, gyakran szeretnénk figyelmen kívül hagyni bizonyos mezőket. Ha a keretrendszer megfelel a Java Persistence API-nak (JPA), akkor hozzáadhatjuk a @ Átmeneti megjegyzés ezekhez a mezőkhöz.
Ebben az oktatóanyagban bemutatjuk a @ Átmeneti annotáció. Megvizsgáljuk a Java beépített kapcsolatát is átmeneti kulcsszó.
2. @ Átmeneti Megjegyzés vs. átmeneti Kulcsszó
Általában némi zavar van a @ Átmeneti annotáció és a Java beépített átmeneti kulcsszó. A átmeneti kulcsszó elsősorban a mezők figyelmen kívül hagyására szolgál a Java objektumok sorosítása során, de megakadályozza ezeknek a mezőknek a megőrzését is JPA keretrendszer használatakor.
Más szavakkal, a átmeneti kulcsszónak ugyanaz a hatása, mint a @ Átmeneti annotáció adatbázisba mentéskor. Azonban a @ Átmeneti az annotáció nem befolyásolja a Java objektumok sorosítását. Tegyük fel, hogy van egy Felhasználó osztály, amely egy JPA entitás, amely az adatbázisunk Felhasználók táblájához társít. Amikor egy felhasználó bejelentkezik, lekérjük a rekordot a Felhasználók táblából, majd további mezőket állítunk be a Felhasználó entitás utána. Ezek az extra mezők nem felelnek meg a Felhasználók táblázat egyetlen oszlopának sem, mert nem akarjuk elmenteni ezeket az értékeket. Például beállítunk egy időbélyeget a Felhasználó entitás, amely azt jelenti, amikor a felhasználó bejelentkezett az aktuális munkamenetbe: Amikor ezt mentjük Felhasználó objektumot az adatbázisba egy olyan JPA szolgáltató segítségével, mint a hibernálás, a szolgáltató figyelmen kívül hagyja a loginTime mező miatt @ Átmeneti annotáció. Ha ezt sorosítjuk Felhasználó objektumot és továbbítja a rendszerünk egy másik szolgáltatásának, a loginTime mező kerül a sorosításba. Ha nem akarjuk felvenni ezt a mezőt, akkor cserélhetjük a @ Átmeneti annotáció a átmeneti kulcsszó helyett: Most a loginTime mezőt figyelmen kívül hagyják az adatbázis-perzisztencia és az objektum sorosítása során. Ebben a cikkben megvizsgáltuk a Közös Parlamenti Közgyűlés megfelelő használatát @ Átmeneti annotáció tipikus használati esetben. Feltétlenül olvassa el a JPA-ról szóló további cikkeket, hogy többet tudjon meg a kitartásról. Mint mindig, a cikk teljes forráskódja elérhető a GitHubon.3. JPA @ Átmeneti Példa
@Entity @Table (name = "Users") public class User {@Id private Integer id; privát karakterlánc e-mail; privát karakterlánc jelszó; @ Átmeneti privát dátum loginTime; // szerelők és beállítók}
@Entity @Table (name = "Users") public class Felhasználó végrehajtja a Serializable {@Id private Integer azonosítót; privát karakterlánc e-mail; privát karakterlánc jelszó; privát tranziens Dátum loginTime; // szerelők és beállítók}
4. Következtetés