den blandede parlamentariske forsamling avancerede konverteringer

, den blandede parlamentariske forsamling er et bibliotek, der er frigivet til java - specifikation.derfor støtter det alle objekt orienterede koncepter for enhed vedholdenhed.indtil nu er vi færdig med det grundlæggende formål relationel kortlægning.dette kapitel finder dig gennem avanceret konverteringer mellem ting og relationelle enheder., arv strategier, arv er det centrale begreb objekt brugerorienteret sprog, derfor kan vi bruge arv forhold eller strategier mellem enheder.den blandede parlamentariske forsamling støtter tre typer arv strategier som f.eks. single_table, joined_table, og table_per_concrete_class. lad os tage et eksempel af personale, teachingstaff, nonteachingstaff klasser og deres forbindelser som følger:, i ovennævnte vist diagram personale er en enhed, og teachingstaff og nonteachingstaff er underordnede enheder af personale.her vil vi drøfte ovenstående eksempel i alle tre strategier, fælles arv. tabel strategi, fælles tabel strategi tager alle klasser områder (begge super og undergrupper) og kortlægge dem ned i en enkelt tabel kendt som single_table strategi.her spiller en central rolle i discriminator værdi at differentiere værdien af tre enheder i en enkelt tabel. lad os betragte ovenstående eksempel, teachingstaff og nonteachingstaff er underklasser af klasse personale.om begrebet arv er en mekanisme for arver egenskaber af super klasse af sub - klasse), og derfor er sid, sname er områder, der tilhører begge teachingstaff og nonteachingstaff.oprettelse af en avs - projektet.alle modulerne i dette projekt som følger: at skabe enheder, skabe en pakke, der hedder,'com. tutorialspoint. eclipselink. enhed under,'src, pakke.skabe en ny java - klasse, der hedder, staff.java under givet pakke.personalet enhed klasse er vist som følger:, pakke com.tutorialspoint.eclipselink.entity; import java.io.serializable; import javax.persistence.discriminatorcolumn; import javax.persistence.entity; import javax.persistence.generatedvalue; import javax.persistence.generationtype; import javax.persistence.id; import javax.persistence.inheritance; import javax.persistence.inheritancetype; import javax.persistence.table; @ enhed @ tabel @ arv (strategi = inheritancetype.single_table) @ discriminatorcolumn (navn = "type") offentlige klasse personale gennemfører serializable {@ id @ generatedvalue (strategi = generationtype.auto) private int sid; private snor sname; offentlige ansatte (int - string sname) (super (); this.sid = sid. this.sname = sname;} offentligt ansatte () (super)} offentlige int getsid () (tilbage sid;} offentlige tomrum setsid int (sid) (this.sid = sid;} offentlige snor getsname () (tilbage sname;} offentlige tomrum setsname (string - sname) (this.sname = sname;), i ovennævnte kode @ descriminatorcolumn, angiver det område navn, (type), og de værdier, det viser de resterende (undervisning og nonteachingstaff) områder., skabe en underklasse (klasse) til personale, klasse, der hedder, teachingstaff.java under, com.tutorialspoint.eclipselink.entity, pakke.den teachingstaff enhed klasse er vist som følger:, pakke com.tutorialspoint.eclipselink.entity; import javax.persistence.discriminatorvalue; import javax.persistence.entity; @ enhed @ discriminatorvalue (værdi = "ts") offentlige klasse teachingstaff omfatter ansatte (private snor kvalifikationer; private snor subjectexpertise; offentlige teachingstaff (int - string sname, snor kvalifikationer, snor subjectexpertise) (super - sname); this.qualification = kvalifikationer; this.subjectexpertise = subjectexpertise;} offentlige teachingstaff () (super)} offentlige snor getqualification () (tilbagevenden kvalifikation) offentlige tomrum setqualification (string kvalifikation) (this.qualification = kvalifikation) offentlige snor getsubjectexpertise () (tilbage subjectexpertise;} offentlige tomrum setsubjectexpertise (string - subjectexpertise) (this.subjectexpertise = subjectexpertise;}}, skabe en underklasse (klasse) til personale, klasse, der hedder, nonteachingstaff.java under, com.tutorialspoint.eclipselink.entity, pakke.den nonteachingstaff enhed klasse er vist som følger:, pakke com.tutorialspoint.eclipselink.entity; import javax.persistence.discriminatorvalue; import javax.persistence.entity; @ enhed @ discriminatorvalue (værdi = "ns") offentlige klasse nonteachingstaff omfatter ansatte (private snor areaexpertise; offentlige nonteachingstaff (int - string sname, snor areaexpertise) (super - sname); this.areaexpertise = areaexpertise; den offentlige nonteachingstaff () (super)} offentlige snor getareaexpertise () (tilbage areaexpertise;} offentlige tomrum setareaexpertise (string - areaexpertise) (this.areaexpertise = areaexpertise;}}, persistens. xml, persistence.xml fil indeholder det uduration oplysninger af database - og registreringen af enhed klasser.xml - filen er vist som følger:, <?xml - version = "0" kodning = "utf - 8"?> < persistens version = "0" xmlns = "http://java.sun.com/xml/ns/persistence" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xsi: schemalocation = "http://java.sun.com/xml/ns/persistence http: //java. sol. kom /xml - /ns /persistens /persistence_2_0. xsd -" > < persistens enheds navn = "eclipselink_jpa" transaktion type = "resource_local" > < klasse > kom. tutorialspoint. eclipselink. enhed. personale < /klasse > < klasse > kom. tutorialspoint. eclipselink. enhed. nonteachingstaff < /klasse > < klasse > kom. tutorialspoint. eclipselink. enhed. teachingstaff < /klasse > < egenskaber > < ejendomsnavn = "javax. persistens. jdbc. url: værdi =" jdbc: mysql: //localhost: 3306 /jpadb "/>< ejendomsnavn = "javax. persistens. jdbc. bruger": værdi = "rod" /> < ejendomsnavn = "javax. persistens. jdbc. kodeordet" værdi = "rod" /> < ejendomsnavn = "javax. persistens. jdbc værdi." = "kom. mysql. jdbc." /> < ejendomsnavn = "eclipselink. skovhugst. plan" værdi = "fint" /> < ejendomsnavn = "eclipselink. ddl generation" værdi = "skabe tabeller" /> < /egenskaber, og gt < /persistens unit > < /persistens >, service class -, service - klasser er gennemførelsen af forretninger komponent.skabe en pakke under,'src, pakke ved navn,'com. tutorialspoint. eclipselink. service,., skabe en klasse, der hedder saveclient.java under de givne pakke til opbevaring af personale, teachingstaff, og nonteachingstaff klasse områder.den saveclient klasse er vist som følger:, pakke com.tutorialspoint.eclipselink.service; import javax.persistence.entitymanager; import javax.persistence.entitymanagerfactory; import javax.persistence.persistence; import com.tutorialspoint.eclipselink.entity.nonteachingstaff; import com.tutorialspoint.eclipselink.entity.teachingstaff; offentlige klasse saveclient {offentlige statisk tomrum vigtigste (string [] args) (entitymanagerfactory emfactory = vedholdenhed. createentitymanagerfactory ("eclipselink_jpa"); entitymanager entitymanager = emfactory. createentitymanager (); entitymanager. gettransaction (). begynder (); //lærere enhed teachingstaff ts1 = nye teachingstaff (1, "gopal", "msc -", "matematik"); teachingstaff nuts2 = nye teachingstaff (2 "manisha", "bsc seng", "engelsk"); //ikke - lærere enhed nonteachingstaff nts1 = nye nonteachingstaff (3, "satish", "regnskaber"); nonteachingstaff nts2 = nye nonteachingstaff (4, "eller", "kontor admin") //lagring af alle enheder entitymanager. fortsætter (ts1); entitymanager. fortsætter (nuts2); entitymanager. fortsætter (nts1); entitymanager. fortsætter (nts2); entitymanager. gettransaction(). commit(); entitymanager. close(); emfactory. close();}} efter udarbejdelsen og gennemførelsen af ovennævnte program, vil de få anmeldelser i panelet panel af formørkelse ide.se her mysql for produktionen.produktionen i tabelform vises som følger: sid type sname areaexpertise kvalifikationer subjectexpertise 1 ts gopal msc - matematik 2 ts manisha bsc seng engelsk 3 ns satish regnskaber 4 ns krishna kontor admin, endelig får du én tabel, der indeholder alle tre klasse er områder og adskiller sig med discriminator kolonne ved navn,'type "(område). i tabel strategi, blev tabel strategi er at dele den pågældende kolonne, der indeholder enestående værdier i tabel og let transaktioner.lad os tage det samme eksempel, som ovenfor, skabe en avs - projektet.alle projektets moduler vist som følger: at skabe enheder, skabe en pakke, der hedder,'com. tutorialspoint. eclipselink. enhed under,'src, pakke.skabe en ny java - klasse, der hedder, staff.java under givet pakke.personalet enhed klasse er vist som følger:, pakke com.tutorialspoint.eclipselink.entity; import java.io.serializable; import javax.persistence.entity; import javax.persistence.generatedvalue; import javax.persistence.generationtype; import javax.persistence.id; import javax.persistence.inheritance; import javax.persistence.inheritancetype; import javax.persistence.table; @ enhed @ tabel @ arv (strategi = inheritancetype.joined) offentlige klasse personale gennemfører serializable {@ id @ generatedvalue (strategi = generationtype.auto) private int sid; private snor sname; offentlige ansatte (int - string sname) (super); this.sid = sid. this.sname = sname;} offentligt ansatte ((s)uper ();} offentlige int getsid () (tilbage sid;} offentlige tomrum setsid int (sid) (this.sid = sid;} offentlige snor getsname () (tilbage sname;} offentlige tomrum setsname (string - sname) (this.sname = sname;}}, skabe en underklasse (klasse) til personale, klasse, der hedder, teachingstaff.java under, com.tutorialspoint.eclipselink.entity, pakke.den teachingstaff enhed klasse er vist som følger:, pakke com.tutorialspoint.eclipselink.entity; import javax.persistence.discriminatorvalue; import javax.persistence.entity; @ enhed @ primarykeyjoincolumn (referencedcolumnname = "sid") offentlige klasse teachingstaff omfatter ansatte (private snor kvalifikationer; private snor subjectexpertise; offentlige teachingstaff (int - string sname, snor kvalifikationer, snor subjectexpertise) (super - sname); this.qualification = kvalifikationer; this.subjectexpertise = subjectexpertise;} offentlige teachingstaff () (super)} offentlige snor getqualification () (tilbagevenden kvalifikation) offentlige tomrum setqualification (string - qualifto) (this.qualification = kvalifikation) offentlige snor getsubjectexpertise () (tilbage subjectexpertise;} offentlige tomrum setsubjectexpertise (string - subjectexpertise) (this.subjectexpertise = subjectexpertise;}}, skabe en underklasse (klasse) til personale, klasse, der hedder, nonteachingstaff.java under, com.tutorialspoint.eclipselink.entity, pakke.den nonteachingstaff enhed klasse er vist som følger:, pakke com.tutorialspoint.eclipselink.entity; import javax.persistence.discriminatorvalue; import javax.persistence.entity; @ enhed @ primarykeyjoincolumn (referencedcolumnname = "sid") offentlige klasse nonteachingstaff omfatter ansatte (private snor areaexpertise; offentlige nonteachingstaff (int - string sname, snor areaexpertise) (super - sname); this.areaexpertise = areaexpertise; den offentlige nonteachingstaff () (super)} offentlige snor getareaexpertise () (tilbage areaexpertise;} offentlige tomrum setareaexpertise (string - areaexpertise) (this.areaexpertise = areaexpertise;}}, persistens. xml, persistence.xml fil fortsatet andet officielt identitetsdokument, som indeholder den konfiguration, information af database - og registreringen af enhed klasser.xml - filen er vist som følger:, <?xml - version = "0" kodning = "utf - 8"?> < persistens version = "0" xmlns = "http://java.sun.com/xml/ns/persistence" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xsi: schemalocation = "http://java.sun.com/xml/ns/persistence http: //java. sol. kom /xml - /ns /persistens /persistence_2_0. xsd -" > < persistens enheds navn = "eclipselink_jpa" transaktion type = "resource_local" > < klasse > kom. tutorialspoint. eclipselink. enhed. personale < /klasse > < klasse > kom. tutorialspoint. eclipselink. enhed. nonteachingstaff < /klasse > < klasse > kom. tutorialspoint. eclipselink. enhed. teachingstaff < /klasse > < egenskaber > < ejendomsnavn = "javax. persistens. jdbc. url: værdi =" jdbc: mysql: //localhost: 3306/jpadb "/> < ejendomsnavn =" javax. persistens. jdbc. bruger ": værdi =" rod "/> < ejendomsnavn =" javax. persistens. jdbc. kodeordet "værdi =" rod "/> < ejendomsnavn =" javax. persistens. jdbc. "værdi =" kom. mysql. jdbc. "/> < ejendomsnavn =" eclipselink. skovhugst. plan "værdi =" fint "/> < ejendomsnavn =" eclipselink. ddl generation "værdi =" skabe tabeller "/> < /egenskaber > < /persistens unit > < /persistens >, service class -, service - klasser er gennemførelsen af forretninger komponent.skabe en pakke under,'src, pakke ved navn,'com. tutorialspoint. eclipselink. service,., skabe en klasse, der hedder saveclient.java under de givne pakke til opbevaring af personale, teachingstaff, og nonteachingstaff klasse områder.så saveclient klasse som følger:, pakke com.tutorialspoint.eclipselink.service; import javax.persistence.entitymanager; import javax.persistence.entitymanagerfactory; import javax.persistence.persistence; import com.tutorialspoint.eclipselink.entity.nonteachingstaff; import com.tutorialspoint.eclipselink.entity.teachingstaff; offentlige klasse saveclient {offentlige statisk tomrum vigtigste (string [] args) (entitymanagerfactory emfactory = vedholdenhed. createentitymanagerfactory ("eclipselink_jpa"); entitymanager entitymanager = emfactory. createentitymanager (); entitymanager. gettransaction (). begynder (); //lærere enhed teachingstaff ts1 = nye teachingstaff (1, "gopal", "msc -", "matematik"); teachingstaffnuts2 = nye teachingstaff (2 "manisha", "bsc seng", "engelsk"); //ikke - lærere enhed nonteachingstaff nts1 = nye nonteachingstaff (3, "satish", "regnskaber"); nonteachingstaff nts2 = nye nonteachingstaff (4, "eller", "kontor admin"); ////////lagring af alle enheder entitymanager. fortsætter (ts1); entitymanager. fortsætter (nuts2); entitymanager. fortsætter (nts1); entitymanager. fortsætter (nts2); entitymanager. gettransaction(). commit(); entitymanager. close(); emfactory. close();}} efter udarbejdelsen og gennemførelsen af ovennævnte program, vil de få anmeldelser i konsollen panel af en ide.for produktion, kontrol mysql her som følger: her tre tabeller er skabt, og resultatet af personale, tabel i tabelform vises som følger:, sid dtype sname 1 teachingstaff gopal 2 teachingstaff manisha 3 nonteachingstaff satish 4 nonteachingstaff krishna, resultatet af teachingstaff, tabel i tabelform vises som følger: sid kvalifikationer subjectexpertise 1 msc - matematik 2 bsc seng engelsk i ovenstående tabel, sid er den udenlandske nøgle (reference område udgør personale tabel) resultatet af nonteachingstaff, tabel i tabelform vises som følger:, sid areaexpertise 3 regnskab 4 kontor admin, endelig de tre tabeller er skabt ved hjælp af deres områder) og sid område deles af alle tre tmuligt.i personaleoversigten sid er primære nøgle, resterende (teachingstaff og nonteachingstaff) tabel sid er udenlandske nøgle. tabel pr. klasse strategi, tabel pr. klasse strategi er at skabe et skema for hver sub - enhed.personalet tabel vil blive skabt, men det indeholder for plader.området værdier af personale, tabel skal deles af teachingstaff og nonteachingstaff tabeller. lad os betragte det samme eksempel, som nævnt ovenfor.alle modulerne i dette projekt er vist som følger: at skabe enheder, skabe en pakke, der hedder,'com. tutorialspoint. eclipselink. enhed under,'src, pakke.skabe en ny java - klasse, der hedder, staff.java under givet pakke.personalet enhed klasse er vist som følger:, pakke com.tutorialspoint.eclipselink.entity; import java.io.serializable; import javax.persistence.entity; import javax.persistence.generatedvalue; import javax.persistence.generationtype; import javax.persistence.id; import javax.persistence.inheritance; import javax.persistence.inheritancetype; import javax.persistence.table; @ enhed @ tabel @ arv (strategi = inheritancetype.table_per_class) offentlige klasse personale gennemfører serializable {@ id @ generatedvalue (strategi = generationtype.auto) private int sid; private snor sname; offentlige ansatte (int - string sname) (super); this.sid = sid. this.sname = sname;} offentligt ansatte ((s)uper ();} offentlige int getsid () (tilbage sid;} offentlige tomrum setsid int (sid) (this.sid = sid;} offentlige snor getsname () (tilbage sname;} offentlige tomrum setsname (string - sname) (this.sname = sname;}}, skabe en underklasse (klasse) til personale, klasse, der hedder, teachingstaff.java under, com.tutorialspoint.eclipselink.entity, pakke.den teachingstaff enhed klasse er vist som følger:, pakke com.tutorialspoint.eclipselink.entity; import javax.persistence.discriminatorvalue; import javax.persistence.entity; @ enhed offentlige klasse teachingstaff omfatter ansatte (private snor kvalifikationer; private snor subjectexpertise; offentlige teachingstaff (int - string sname, snor kvalifikationer, snor subjectexpertise) (super - sname); this.qualification = kvalifikationer; this.subjectexpertise = subjectexpertise;} offentlige teachingstaff () (super)} offentlige snor getqualification () (tilbagevenden kvalifikation) offentlige tomrum setqualification (string kvalifikation) (this.qualification = kvalifikationer;} offentlige snor getsubjectexpertise () (tilbage subjectexpertise;} offentlige tomrum setsubjectexpertise (string - subjectexpertise) (this.subjectexpertise = subjectexpertise;}}, skabe en underklasse (klasse) til personale, klasse, der hedder, nonteachingstaff.java under, com.tutorialspoint.eclipselink.entity, pakke.den nonteachingstaff enhed klasse er vist som følger:, pakke com.tutorialspoint.eclipselink.entity; import javax.persistence.discriminatorvalue; import javax.persistence.entity; @ enhed offentlige klasse nonteachingstaff omfatter ansatte (private snor areaexpertise; offentlige nonteachingstaff (int - string sname, snor areaexpertise) (super - sname); this.areaexpertise = areaexpertise;} offentlige nonteachingstaff () (super ();) offentlige snor getareaexpertise () (tilbage areaexpertise;} offentlige tomrum setareaexpertise (string - areaexpertise) (this.areaexpertise = areaexpertise;}}, persistens. xml, persistence.xml fil indeholder oplysninger af database - og konfigurationregistreringen af enhed klasser.xml - filen er vist som følger:, <?xml - version = "0" kodning = "utf - 8"?> < persistens version = "0" xmlns = "http://java.sun.com/xml/ns/persistence" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xsi: schemalocation = "http://java.sun.com/xml/ns/persistence http: //java. sol. kom /xml - /ns /persistens /persistence_2_0. xsd -" > < persistens enheds navn = "eclipselink_jpa" transaktion type = "resource_local" > < klasse > kom. tutorialspoint. eclipselink. enhed. personale < /klasse > < klasse > kom. tutorialspoint. eclipselink. enhed. nonteachingstaff < /klasse > < klasse > kom. tutorialspoint. eclipselink. enhed. teachingstaff < /klasse > < egenskaber > < ejendomsnavn = "javax. persistens. jdbc. url: værdi =" jdbc: mysql: //localhost 3306 /jpad:b /> < ejendomsnavn = "javax. persistens. jdbc. bruger": værdi = "rod" /> < ejendomsnavn = "javax. persistens. jdbc. kodeordet" værdi = "rod" /> < ejendomsnavn = "javax. persistens. jdbc." værdi = "kom. mysql. jdbc." /> < ejendomsnavn = "eclipselink. skovhugst. plan" værdi = "fint" /> < ejendomsnavn = "eclipselink. ddl generation" værdi = "skabe tabeller" /> < /egenskaber > < /persistens unit > < /persistens >, service class -, service - klasser er gennemførelsen af forretninger komponent.skabe en pakke under,'src, pakke ved navn,'com. tutorialspoint. eclipselink. service,., skabe en klasse, der hedder, saveclient.java under de givne pakke til opbevaring af personale, teachingstaff, og nonteachingstaff klasse områder.den saveclient klasse er vist som følger:, pakke com.tutorialspoint.eclipselink.service; import javax.persistence.entitymanager; import javax.persistence.entitymanagerfactory; import javax.persistence.persistence; import com.tutorialspoint.eclipselink.entity.nonteachingstaff; import com.tutorialspoint.eclipselink.entity.teachingstaff; offentlige klasse saveclient {offentlige statisk tomrum vigtigste (string [] args) (entitymanagerfactory emfactory = vedholdenhed. createentitymanagerfactory ("eclipselink_jpa"); entitymanager entitymanager = emfactory. createentitymanager (); entitymanager. gettransaction (). begynder (); //lærere enhed teachingstaff ts1 = nye teachingstaff (1, "gopal", "msc -", "matematik lære");hingstaff nuts2 = nye teachingstaff (2 "manisha", "bsc seng", "engelsk"); //ikke - lærere enhed nonteachingstaff nts1 = nye nonteachingstaff (3, "satish", "regnskaber"); nonteachingstaff nts2 = nye nonteachingstaff (4, "eller", "kontor admin") //lagring af alle enheder entitymanager. fortsætter (ts1); entitymanager. fortsætter (nuts2); entitymanager. fortsætter (nts1); entitymanager. fortsætter (nts2); entitymanager. gettransaction(). commit(); entitymanager. close(); emfactory. close();}} efter udarbejdelsen og gennemførelsen af ovennævnte program, vil de få anmeldelser i panelet panel af formørkelse ide.for produktion, kontrol mysql her som følger: her de tre tabeller er skabt og personale, tabel indeholder for plader. resultatet af, teachingstaff i tabelform vises som følger: sid kvalifikationer sname subjectexpertise 1 msc - gopal matematik 2 bsc seng manisha engelsk, tabellen ovenfor teachingstaff indeholder felter af både personale og teachingstaff enheder. resultatet af, nonteachingstaff i tabelform vises som følger:, sid areaexpertise sname 3 regnskaber satish 4 kontor admin krishna, tabellen ovenfor nonteachingstaff indeholder både personale og nonteachingstaff enheder.

Inheritance Strategy



Previous:
Next Page: