tag:blogger.com,1999:blog-80598217087920417602024-03-12T19:20:30.041-07:00zdobyć świata szczyt...Agata Wojciechowskahttp://www.blogger.com/profile/06118995696321699530noreply@blogger.comBlogger5125tag:blogger.com,1999:blog-8059821708792041760.post-61847011238471644262008-12-08T14:42:00.000-08:002009-01-29T10:33:02.799-08:00Obiekty Hibernate<meta equiv="Content-Type" content="text/html; charset=utf-8"><meta name="ProgId" content="Word.Document"><meta name="Generator" content="Microsoft Word 12"><meta name="Originator" content="Microsoft Word 12"><link rel="File-List" href="file:///C:%5CDOCUME%7E1%5Caw%5CUSTAWI%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml"><!--[if gte mso 9]><xml> <o:officedocumentsettings> <o:relyonvml/> <o:allowpng/> </o:OfficeDocumentSettings> </xml><![endif]--><link rel="themeData" href="file:///C:%5CDOCUME%7E1%5Caw%5CUSTAWI%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx"><link rel="colorSchemeMapping" href="file:///C:%5CDOCUME%7E1%5Caw%5CUSTAWI%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml"><!--[if gte mso 9]><xml> <w:worddocument> <w:view>Normal</w:View> <w:zoom>0</w:Zoom> <w:trackmoves/> <w:trackformatting/> <w:hyphenationzone>21</w:HyphenationZone> <w:punctuationkerning/> <w:validateagainstschemas/> <w:saveifxmlinvalid>false</w:SaveIfXMLInvalid> <w:ignoremixedcontent>false</w:IgnoreMixedContent> <w:alwaysshowplaceholdertext>false</w:AlwaysShowPlaceholderText> <w:donotpromoteqf/> <w:lidthemeother>PL</w:LidThemeOther> <w:lidthemeasian>X-NONE</w:LidThemeAsian> <w:lidthemecomplexscript>X-NONE</w:LidThemeComplexScript> <w:compatibility> <w:breakwrappedtables/> <w:snaptogridincell/> <w:wraptextwithpunct/> <w:useasianbreakrules/> <w:dontgrowautofit/> <w:splitpgbreakandparamark/> <w:dontvertaligncellwithsp/> <w:dontbreakconstrainedforcedtables/> <w:dontvertalignintxbx/> <w:word11kerningpairs/> <w:cachedcolbalance/> </w:Compatibility> <m:mathpr> <m:mathfont val="Cambria Math"> <m:brkbin val="before"> <m:brkbinsub val="--"> <m:smallfrac val="off"> <m:dispdef/> <m:lmargin val="0"> <m:rmargin val="0"> <m:defjc val="centerGroup"> <m:wrapindent val="1440"> <m:intlim val="subSup"> <m:narylim val="undOvr"> </m:mathPr></w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:latentstyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267"> <w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal"> <w:lsdexception locked="false" priority="9" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 2"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 3"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 4"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 5"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 6"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 7"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 8"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 9"> <w:lsdexception locked="false" priority="39" name="toc 1"> <w:lsdexception locked="false" priority="39" name="toc 2"> <w:lsdexception locked="false" priority="39" name="toc 3"> <w:lsdexception locked="false" priority="39" name="toc 4"> <w:lsdexception locked="false" priority="39" name="toc 5"> <w:lsdexception locked="false" priority="39" name="toc 6"> <w:lsdexception locked="false" priority="39" name="toc 7"> <w:lsdexception locked="false" priority="39" name="toc 8"> <w:lsdexception locked="false" priority="39" name="toc 9"> <w:lsdexception locked="false" priority="35" qformat="true" name="caption"> <w:lsdexception locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title"> <w:lsdexception locked="false" priority="1" name="Default Paragraph Font"> <w:lsdexception locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle"> <w:lsdexception locked="false" priority="22" semihidden="false" unhidewhenused="false" qformat="true" name="Strong"> <w:lsdexception locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis"> <w:lsdexception locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid"> <w:lsdexception locked="false" unhidewhenused="false" name="Placeholder Text"> <w:lsdexception locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1"> <w:lsdexception locked="false" unhidewhenused="false" name="Revision"> <w:lsdexception locked="false" priority="34" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph"> <w:lsdexception locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote"> <w:lsdexception locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6"> <w:lsdexception locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis"> <w:lsdexception locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis"> <w:lsdexception locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference"> <w:lsdexception locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference"> <w:lsdexception locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title"> <w:lsdexception locked="false" priority="37" name="Bibliography"> <w:lsdexception locked="false" priority="39" qformat="true" name="TOC Heading"> </w:LatentStyles> </xml><![endif]--><style> <!-- /* Font Definitions */ @font-face {font-family:"Cambria Math"; panose-1:2 4 5 3 5 4 6 3 2 4; mso-font-charset:238; mso-generic-font-family:roman; mso-font-pitch:variable; mso-font-signature:-1610611985 1107304683 0 0 159 0;} @font-face {font-family:Calibri; panose-1:2 15 5 2 2 2 4 3 2 4; mso-font-charset:238; mso-generic-font-family:swiss; mso-font-pitch:variable; mso-font-signature:-1610611985 1073750139 0 0 159 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-unhide:no; mso-style-qformat:yes; mso-style-parent:""; margin-top:0cm; margin-right:0cm; margin-bottom:10.0pt; margin-left:0cm; line-height:115%; mso-pagination:widow-orphan; font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:Calibri; mso-fareast-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi; mso-fareast-language:EN-US;} .MsoChpDefault {mso-style-type:export-only; mso-default-props:yes; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:Calibri; mso-fareast-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi; mso-fareast-language:EN-US;} .MsoPapDefault {mso-style-type:export-only; margin-bottom:10.0pt; line-height:115%;} @page Section1 {size:612.0pt 792.0pt; margin:70.85pt 70.85pt 70.85pt 70.85pt; mso-header-margin:35.4pt; mso-footer-margin:35.4pt; mso-paper-source:0;} div.Section1 {page:Section1;} --> </style><!--[if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:Standardowy; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-qformat:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin-top:0cm; mso-para-margin-right:0cm; mso-para-margin-bottom:10.0pt; mso-para-margin-left:0cm; line-height:115%; mso-pagination:widow-orphan; font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-fareast-language:EN-US;} </style> <![endif]--> <p class="MsoNormal"><span style="line-height: 115%;font-size:100%;"><span class="Apple-style-span" style="font-family: 'times new roman';">Obiekty Hibernate</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></p> <p class="MsoNormal"><span style="line-height: 115%;font-size:100%;"><span class="Apple-style-span" style="font-family: 'times new roman';">1. Obiekty sesji </span></span></p> <ul><li><span style="font-size:100%;"><i style=""><span style="line-height: 115%;"><span class="Apple-style-span" style="font-family: 'times new roman';">Configuration – </span></span></i></span><span style="line-height: 115%;font-size:100%;"><span class="Apple-style-span" style="font-family: 'times new roman';">klasa ta wykorzystywana jest do odczytywania i ustawiania szczegółów implementacyjnych, w Hiberante wykorzystywany jest obiekt tej klasy do utworzenia obiektów typu </span><i style=""><span class="Apple-style-span" style="font-family: 'times new roman';">SessionFactory. </span></i><span class="Apple-style-span" style="font-family: 'times new roman';">Aplikacja posiada jeden </span></span><span style="line-height: 115%;font-size:100%;"><span class="Apple-style-span" style="font-family: 'times new roman';">obiekt </span><i style=""><span class="Apple-style-span" style="font-family: 'times new roman';">Configuration, </span></i><span class="Apple-style-span" style="font-family: 'times new roman';">który jest wykorzystywany jedynie podczas inicjalizacji. </span><i style=""><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></i></span></li><li><span style="font-size:100%;"><i style=""><span style="line-height: 115%;"><span class="Apple-style-span" style="font-family: 'times new roman';">SessionFactory –</span></span></i></span><span style="line-height: 115%;font-size:100%;"><span class="Apple-style-span" style="font-family: 'times new roman';"> wykorzystywany jest obiekt tej klasy do tworzenia obiektu Session jeśli zachodzi taka potrzeba. Aplikacja powinna wykorzystywać jeden obiekt Hibernate’a </span><i style=""><span class="Apple-style-span" style="font-family: 'times new roman';">SessionFactory</span></i><span class="Apple-style-span" style="font-family: 'times new roman';"> dla każdego osobnego egzemplarza bazy danych. Jest on uzależniony od parametrów konfiguracyjnych Hibernate’a.</span><i style=""><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></i></span></li><li><span style="font-size:100%;"><i style=""><span style="line-height: 115%;"><span class="Apple-style-span" style="font-family: 'times new roman';">Session –</span></span></i></span><span style="line-height: 115%;font-size:100%;"><span class="Apple-style-span" style="font-family: 'times new roman';"> Za każdym razem gdy aplikacja będzie chciała pracować z bazą danych zostanie utworzony obiekt </span><i style=""><span class="Apple-style-span" style="font-family: 'times new roman';">Session</span></i><span class="Apple-style-span" style="font-family: 'times new roman';">. Aplikacja mam możliwość pobrania obiektu, zmiany niektórych jego własności, a następnie utrwalenia go oraz zamknięcia obiektu </span><i style=""><span class="Apple-style-span" style="font-family: 'times new roman';">Session</span></i><span class="Apple-style-span" style="font-family: 'times new roman';">.</span><i style=""><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></i></span></li></ul> <p class="MsoNormal" style="text-align: justify;"><span style="line-height: 115%;font-size:100%;"><span class="Apple-style-span" style="font-family: 'times new roman';">Przykład utworzenia obiektów Hibernate:</span></span></p> <blockquote><p class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 18pt; text-align: justify; line-height: normal;"><span style=";font-size:100%;"><span class="Apple-style-span" style="font-family: 'times new roman';">SessionFactory sessions = </span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></p> <p class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 18pt; text-align: justify; line-height: normal;"><span style=";font-size:100%;"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span></span><span style=";font-size:100%;" lang="EN-US"><span class="Apple-style-span" style="font-family: 'times new roman';">new</span><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">Configuration().configure().buildSessionFactory();</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></p> <p class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 18pt; text-align: justify; line-height: normal;"><span style=";font-size:100%;" lang="EN-US"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">Session session = sessions.openSession();</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></p> <p class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 18pt; text-align: justify; line-height: normal;"><span style=";font-size:100%;" lang="EN-US"><o:p><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></o:p></span></p></blockquote><p class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 18pt; text-align: justify; line-height: normal;"><span style=";font-size:100%;" lang="EN-US"><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"><span style=";font-size:100%;" lang="EN-US"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span></span><span style=";font-size:100%;"><span class="Apple-style-span" style="font-family: 'times new roman';">Metoda </span><i style=""><span class="Apple-style-span" style="font-family: 'times new roman';">configure()</span></i><span class="Apple-style-span" style="font-family: 'times new roman';"> zwraca egzemplarz obietku </span><i style=""><span class="Apple-style-span" style="font-family: 'times new roman';">Configuration</span></i><span class="Apple-style-span" style="font-family: 'times new roman';">, który może być wykorzystywany do uzyskania egzemplarza Hibernate’a </span><i style=""><span class="Apple-style-span" style="font-family: 'times new roman';">SessionFact</span></i></span><span style=";font-size:100%;"><i style=""><span class="Apple-style-span" style="font-family: 'times new roman';">ory</span></i><span class="Apple-style-span" style="font-family: 'times new roman';"> poprzez wywołanie metody </span><i style=""><span class="Apple-style-span" style="font-family: 'times new roman';">buildSessionFactory()</span></i><span class="Apple-style-span" style="font-family: 'times new roman';">.</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></p> <p class="MsoNormal"><span style="line-height: 115%;font-size:100%;"><o:p><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></o:p></span></p> <p class="MsoNormal"><span style="line-height: 115%;font-size:100%;"><o:p><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></o:p></span></p> <p class="MsoNormal"><span style="line-height: 115%;font-size:100%;"><span class="Apple-style-span" style="font-family: 'times new roman';">2.</span><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">Cykl życia obiektu trwałego</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></p> <p class="MsoNormal"><span style="line-height: 115%;font-size:100%;"><span class="Apple-style-span" style="font-family: 'times new roman';">Hibernate definiuje tylko 3 stany w cyklu życia obiektu stałego: ulotny (ang. transient), trwały (ang. persistent) i odłączony (ang. detached).</span></span><span style="font-size:100%;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_SdDS_Xmza58/ST2j1-XlLVI/AAAAAAAAEmI/elcGLchVXD4/s1600-h/Hobject.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 220px;" src="http://4.bp.blogspot.com/_SdDS_Xmza58/ST2j1-XlLVI/AAAAAAAAEmI/elcGLchVXD4/s400/Hobject.jpg" alt="" id="BLOGGER_PHOTO_ID_5277554486018387282" border="0" /></a></span></p> <p class="MsoNormal"><span style="line-height: 115%;font-size:100%;"><span class="Apple-style-span" style="font-family: 'times new roman';">2.1 Obiekty trwałe</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: justify;"><span style="line-height: 115%;font-size:100%;"><span class="Apple-style-span" style="font-family: 'times new roman';">Obiekty trwałe istnieją w bazie danych, a ich stan jest synchronizowany z bazą danych na końcu transakcji. Takie obiekty zawsze są związane z obiektem Session. Stan obiektu trafia do bazy w wyniku wykonania operacji takich jak: INSERT, UPDATE, DELETE. Narzędzie Hibernate automatycznie sprawdza, w których obiektach trwałych doszło do zmiany, aby móc później zapisać te dane. Dzięki temu tylko część danych podlega modyfikacji, co pozwala zwiększyć wydajność, przynajmniej w niektórych bazach danych. </span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: justify;"><span style="line-height: 115%;font-size:100%;"><span class="Apple-style-span" style="font-family: 'times new roman';">2.2 Obiekty odłączone</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: justify;"><span style="line-height: 115%;font-size:100%;"><span class="Apple-style-span" style="font-family: 'times new roman';">Obiekty odłączone posiadają swoją reprezentacje w bazie danych ale zmiany w tym obiekcie nie zostaną odzwierciedlone w bazie i na odwrót. Można je stworzyć na dwa sposoby: poprzez zamknięcie sesji z nim powiązanej albo przez usunięcie go z sesji dzięki wywołaniu metody evict(). Są jednak one bardzo użyteczne w momencie gdy chcemy zwrócić obiekt z jednej transakcji do warstwy prezentacji i ponownie użyć go w innej transakcji. </span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: justify;"><span style="line-height: 115%;font-size:100%;"><span class="Apple-style-span" style="font-family: 'times new roman';">2.3 Obiekty ulotne (przejściowe)</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: justify;"><span style="line-height: 115%;font-size:100%;"><span class="Apple-style-span" style="font-family: 'times new roman';">Obiekty ulotne nie są związane z żadnym wierszem bazy danych. Tym samym nie są obsługiwane przez Hibernate.</span><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">Można je utworzyć przy pomocy operatora new. </span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></p><meta equiv="Content-Type" content="text/html; charset=utf-8"><meta name="ProgId" content="Word.Document"><meta name="Generator" content="Microsoft Word 12"><meta name="Originator" content="Microsoft Word 12"><link rel="File-List" href="file:///C:%5CDOCUME%7E1%5Caw%5CUSTAWI%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml"><!--[if gte mso 9]><xml> <o:officedocumentsettings> <o:relyonvml/> <o:allowpng/> </o:OfficeDocumentSettings> </xml><![endif]--><link rel="themeData" href="file:///C:%5CDOCUME%7E1%5Caw%5CUSTAWI%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx"><link rel="colorSchemeMapping" href="file:///C:%5CDOCUME%7E1%5Caw%5CUSTAWI%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml"><!--[if gte mso 9]><xml> <w:worddocument> <w:view>Normal</w:View> <w:zoom>0</w:Zoom> <w:trackmoves/> <w:trackformatting/> <w:hyphenationzone>21</w:HyphenationZone> <w:punctuationkerning/> <w:validateagainstschemas/> <w:saveifxmlinvalid>false</w:SaveIfXMLInvalid> <w:ignoremixedcontent>false</w:IgnoreMixedContent> <w:alwaysshowplaceholdertext>false</w:AlwaysShowPlaceholderText> <w:donotpromoteqf/> <w:lidthemeother>PL</w:LidThemeOther> <w:lidthemeasian>X-NONE</w:LidThemeAsian> <w:lidthemecomplexscript>X-NONE</w:LidThemeComplexScript> <w:compatibility> <w:breakwrappedtables/> <w:snaptogridincell/> <w:wraptextwithpunct/> <w:useasianbreakrules/> <w:dontgrowautofit/> <w:splitpgbreakandparamark/> <w:dontvertaligncellwithsp/> <w:dontbreakconstrainedforcedtables/> <w:dontvertalignintxbx/> <w:word11kerningpairs/> <w:cachedcolbalance/> </w:Compatibility> <m:mathpr> <m:mathfont val="Cambria Math"> <m:brkbin val="before"> <m:brkbinsub val="--"> <m:smallfrac val="off"> <m:dispdef/> <m:lmargin val="0"> <m:rmargin val="0"> <m:defjc val="centerGroup"> <m:wrapindent val="1440"> <m:intlim val="subSup"> <m:narylim val="undOvr"> </m:mathPr></w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:latentstyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267"> <w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal"> <w:lsdexception locked="false" priority="9" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 2"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 3"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 4"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 5"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 6"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 7"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 8"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 9"> <w:lsdexception locked="false" priority="39" name="toc 1"> <w:lsdexception locked="false" priority="39" name="toc 2"> <w:lsdexception locked="false" priority="39" name="toc 3"> <w:lsdexception locked="false" priority="39" name="toc 4"> <w:lsdexception locked="false" priority="39" name="toc 5"> <w:lsdexception locked="false" priority="39" name="toc 6"> <w:lsdexception locked="false" priority="39" name="toc 7"> <w:lsdexception locked="false" priority="39" name="toc 8"> <w:lsdexception locked="false" priority="39" name="toc 9"> <w:lsdexception locked="false" priority="35" qformat="true" name="caption"> <w:lsdexception locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title"> <w:lsdexception locked="false" priority="1" name="Default Paragraph Font"> <w:lsdexception locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle"> <w:lsdexception locked="false" priority="22" semihidden="false" unhidewhenused="false" qformat="true" name="Strong"> <w:lsdexception locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis"> <w:lsdexception locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid"> <w:lsdexception locked="false" unhidewhenused="false" name="Placeholder Text"> <w:lsdexception locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1"> <w:lsdexception locked="false" unhidewhenused="false" name="Revision"> <w:lsdexception locked="false" priority="34" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph"> <w:lsdexception locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote"> <w:lsdexception locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6"> <w:lsdexception locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis"> <w:lsdexception locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis"> <w:lsdexception locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference"> <w:lsdexception locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference"> <w:lsdexception locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title"> <w:lsdexception locked="false" priority="37" name="Bibliography"> <w:lsdexception locked="false" priority="39" qformat="true" name="TOC Heading"> </w:LatentStyles> </xml><![endif]--><style> <!-- /* Font Definitions */ @font-face {font-family:Wingdings; panose-1:5 0 0 0 0 0 0 0 0 0; mso-font-charset:2; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:0 268435456 0 0 -2147483648 0;} @font-face {font-family:"Cambria Math"; panose-1:2 4 5 3 5 4 6 3 2 4; mso-font-charset:238; mso-generic-font-family:roman; mso-font-pitch:variable; mso-font-signature:-1610611985 1107304683 0 0 159 0;} @font-face {font-family:Calibri; panose-1:2 15 5 2 2 2 4 3 2 4; mso-font-charset:238; mso-generic-font-family:swiss; mso-font-pitch:variable; mso-font-signature:-1610611985 1073750139 0 0 159 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-unhide:no; mso-style-qformat:yes; mso-style-parent:""; margin-top:0cm; margin-right:0cm; margin-bottom:10.0pt; margin-left:0cm; line-height:115%; mso-pagination:widow-orphan; font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:Calibri; mso-fareast-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi; mso-fareast-language:EN-US;} p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph {mso-style-priority:34; mso-style-unhide:no; mso-style-qformat:yes; margin-top:0cm; margin-right:0cm; margin-bottom:10.0pt; margin-left:36.0pt; mso-add-space:auto; line-height:115%; mso-pagination:widow-orphan; font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:Calibri; mso-fareast-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi; mso-fareast-language:EN-US;} p.MsoListParagraphCxSpFirst, li.MsoListParagraphCxSpFirst, div.MsoListParagraphCxSpFirst {mso-style-priority:34; mso-style-unhide:no; mso-style-qformat:yes; mso-style-type:export-only; margin-top:0cm; margin-right:0cm; margin-bottom:0cm; margin-left:36.0pt; margin-bottom:.0001pt; mso-add-space:auto; line-height:115%; mso-pagination:widow-orphan; font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:Calibri; mso-fareast-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi; mso-fareast-language:EN-US;} p.MsoListParagraphCxSpMiddle, li.MsoListParagraphCxSpMiddle, div.MsoListParagraphCxSpMiddle {mso-style-priority:34; mso-style-unhide:no; mso-style-qformat:yes; mso-style-type:export-only; margin-top:0cm; margin-right:0cm; margin-bottom:0cm; margin-left:36.0pt; margin-bottom:.0001pt; mso-add-space:auto; line-height:115%; mso-pagination:widow-orphan; font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:Calibri; mso-fareast-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi; mso-fareast-language:EN-US;} p.MsoListParagraphCxSpLast, li.MsoListParagraphCxSpLast, div.MsoListParagraphCxSpLast {mso-style-priority:34; mso-style-unhide:no; mso-style-qformat:yes; mso-style-type:export-only; margin-top:0cm; margin-right:0cm; margin-bottom:10.0pt; margin-left:36.0pt; mso-add-space:auto; line-height:115%; mso-pagination:widow-orphan; font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:Calibri; mso-fareast-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi; mso-fareast-language:EN-US;} .MsoChpDefault {mso-style-type:export-only; mso-default-props:yes; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:Calibri; mso-fareast-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi; mso-fareast-language:EN-US;} .MsoPapDefault {mso-style-type:export-only; margin-bottom:10.0pt; line-height:115%;} @page Section1 {size:612.0pt 792.0pt; margin:70.85pt 70.85pt 70.85pt 70.85pt; mso-header-margin:35.4pt; mso-footer-margin:35.4pt; mso-paper-source:0;} div.Section1 {page:Section1;} /* List Definitions */ @list l0 {mso-list-id:1034962742; mso-list-type:hybrid; mso-list-template-ids:1237451080 68485121 68485123 68485125 68485121 68485123 68485125 68485121 68485123 68485125;} @list l0:level1 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:none; mso-level-number-position:left; margin-left:54.0pt; text-indent:-18.0pt; font-family:Symbol;} ol {margin-bottom:0cm;} ul {margin-bottom:0cm;} --> </style><!--[if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:Standardowy; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-qformat:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin-top:0cm; mso-para-margin-right:0cm; mso-para-margin-bottom:10.0pt; mso-para-margin-left:0cm; line-height:115%; mso-pagination:widow-orphan; font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-fareast-language:EN-US;} </style> <![endif]--> <p class="MsoNormal" style="margin-left: 18pt;"><span style="line-height: 115%;font-size:100%;"><span class="Apple-style-span" style="font-family: 'times new roman';">3. Metody obiektu Session</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></p> <p class="MsoListParagraphCxSpFirst" style="margin-left: 54pt; text-indent: -18pt;"><!--[if !supportLists]--><span style="line-height: 115%;font-size:100%;" lang="EN-US"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';">·</span><span style=";"><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span></span></span><!--[endif]--><span style="line-height: 115%;font-size:100%;" lang="EN-US"><span class="Apple-style-span" style="font-family: 'times new roman';">save</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></p> <p class="MsoListParagraphCxSpMiddle" style="margin-left: 54pt; text-align: justify;"><span style="line-height: 115%;font-size:100%;"><span class="Apple-style-span" style="font-family: 'times new roman';">Metoda save służy do zmiany obiektu ulotnego w trwały.</span><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">Metoda save wiąże obiekt</span><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">z sesją i czyni go trwałym. Obiekt sesji łączy się z bazą danych</span><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">przy pomocy połączenia JDBC dopiero w momencie zatwierdzenia transakcji .</span><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></p> <p class="MsoListParagraphCxSpMiddle" style="margin-left: 54pt; text-indent: -18pt;"><!--[if !supportLists]--><span style="line-height: 115%;font-size:100%;"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';">·</span><span style=";"><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span></span></span><!--[endif]--><span style="line-height: 115%;font-size:100%;"><span class="Apple-style-span" style="font-family: 'times new roman';">update, lock </span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></p> <p class="MsoListParagraphCxSpMiddle" style="margin-left: 54pt; text-align: justify;"><span style="line-height: 115%;font-size:100%;"><span class="Apple-style-span" style="font-family: 'times new roman';">Metoda update wymusza aktualizację stanu obiektu trwałego w bazie danych.</span><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">Przy jej pomocy wykonywane jest poleceni UPDATE na bazie danych. </span><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">Polecenie update wykonuje się na obiektach odłączonych, które można przyłączyć do nowej sesji. Podobnie zachowuje się również polecenia lock. Z tą różnicą że lock wiąże obiekt odłączony z sesją, ale nie wymaga jego aktualizacji w bazie danych. </span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></p> <p class="MsoListParagraphCxSpMiddle" style="margin-left: 54pt; text-indent: -18pt;"><!--[if !supportLists]--><span style="line-height: 115%;font-size:100%;"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';">·</span><span style=";"><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span></span></span><!--[endif]--><span style="line-height: 115%;font-size:100%;"><span class="Apple-style-span" style="font-family: 'times new roman';">saveOrUpdate</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></p> <p class="MsoListParagraphCxSpMiddle" style="margin-left: 54pt;"><span style="line-height: 115%;font-size:100%;"><span class="Apple-style-span" style="font-family: 'times new roman';">Metoda saveOrUpdate powoduje dodanie nowego wiersza w bazie danych jeśli obiekt jest ulotny lub aktualizację jeśli obiekt jest odłączony. </span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></p> <p class="MsoListParagraphCxSpMiddle" style="margin-left: 54pt; text-indent: -18pt;"><!--[if !supportLists]--><span style="line-height: 115%;font-size:100%;"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';">·</span><span style=";"><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span></span></span><!--[endif]--><span style="line-height: 115%;font-size:100%;"><span class="Apple-style-span" style="font-family: 'times new roman';">get</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></p> <p class="MsoListParagraphCxSpMiddle" style="margin-left: 54pt;"><span style="line-height: 115%;font-size:100%;"><span class="Apple-style-span" style="font-family: 'times new roman';">Metoda interfejsu Session </span><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">służy do pobrania obiektu (np. na podstawie identyfikatora) z bazy danych . Tak powstały obiekt można używać poza transakcją jako obiekt odłączony. </span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></p> <p class="MsoListParagraphCxSpMiddle" style="margin-left: 54pt; text-indent: -18pt;"><!--[if !supportLists]--><span style="line-height: 115%;font-size:100%;"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';">·</span><span style=";"><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span></span></span><!--[endif]--><span style="line-height: 115%;font-size:100%;"><span class="Apple-style-span" style="font-family: 'times new roman';">delete</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></p> <p class="MsoListParagraphCxSpMiddle" style="margin-left: 54pt;"><span style="line-height: 115%;font-size:100%;"><span class="Apple-style-span" style="font-family: 'times new roman';">Metoda</span><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">delete wywoła polecenie DELETE z SQL ale dopiero w momencie synchronizacji sesji. </span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></p> <p class="MsoListParagraphCxSpMiddle" style="margin-left: 54pt; text-indent: -18pt;"><span class="Apple-style-span" style="line-height: 18px; "><span class="Apple-style-span" style="font-family: 'times new roman';">...</span></span></p><span class="Apple-style-span" style="font-family: 'times new roman';">Źródła: Hibernate w akcji Christian Bauer, Gavin King</span>
<br />Agata Wojciechowskahttp://www.blogger.com/profile/06118995696321699530noreply@blogger.com0tag:blogger.com,1999:blog-8059821708792041760.post-10789123480003514132008-11-23T09:14:00.000-08:002009-01-29T10:38:28.433-08:00Odwzorowanie dziedziczenia przykład<p class="MsoNormal"> </p><p class="MsoNormal"><span class="Apple-style-span" style="font-family: 'times new roman';">Na początek diagram:</span><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_SdDS_Xmza58/SSmQDRMSiEI/AAAAAAAAEHY/7laGvvqBU7Q/s1600-h/authorAll.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 154px;" src="http://3.bp.blogspot.com/_SdDS_Xmza58/SSmQDRMSiEI/AAAAAAAAEHY/7laGvvqBU7Q/s400/authorAll.jpg" alt="" id="BLOGGER_PHOTO_ID_5271903224642832450" border="0" /></a></p> <p class="MsoNormal"><span class="Apple-style-span" style="font-family: 'times new roman';"><br /></span></p><p class="MsoNormal"><span class="Apple-style-span" style="font-family: 'times new roman';">Jak widać mamy tu dziedziczenie, relację wiele do wiele jak i asocjację skierowaną.</span></p> <p class="MsoNormal"><span class="Apple-style-span" style="font-family: 'times new roman';">Schemat takiej bazy danych może wyglądać następująco:</span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span class="Apple-style-span" style="font-family: 'times new roman';"><span lang="EN-US" style="font-size:85%;"></span></span></p><blockquote><p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span lang="EN-US" style="font-size:85%;"><span class="Apple-style-span" style="font-family: 'times new roman';">create table works (</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span lang="EN-US" style="font-size:85%;"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">id NUMBER not null primary key, </span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span lang="EN-US" style="font-size:85%;"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">tempo NUMBER, </span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span lang="EN-US" style="font-size:85%;"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">genre VARCHAR2(255), </span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span lang="EN-US" style="font-size:85%;"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">peges NUMBER(4), </span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span lang="EN-US" style="font-size:85%;"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">title VARCHAR2(255)</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span lang="EN-US" style="font-size:85%;"><span class="Apple-style-span" style="font-family: 'times new roman';">);</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span lang="EN-US" style="font-size:85%;"><o:p><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></o:p></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span lang="EN-US" style="font-size:85%;"><span class="Apple-style-span" style="font-family: 'times new roman';">create table author_work (</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span lang="EN-US" style="font-size:85%;"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">author_id NUMBER not null, </span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span lang="EN-US" style="font-size:85%;"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">work_id NUMBER not null, </span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span lang="EN-US" style="font-size:85%;"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">primary key (work_id, author_id)</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span lang="EN-US" style="font-size:85%;"><span class="Apple-style-span" style="font-family: 'times new roman';">);</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span lang="EN-US" style="font-size:85%;"><o:p><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></o:p></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span lang="EN-US" style="font-size:85%;"><span class="Apple-style-span" style="font-family: 'times new roman';">create table authors (</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span lang="EN-US" style="font-size:85%;"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">id NUMBER not null primary key, </span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span lang="EN-US" style="font-size:85%;"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">alias VARCHAR2(255)</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span lang="EN-US" style="font-size:85%;"><span class="Apple-style-span" style="font-family: 'times new roman';">);</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span lang="EN-US" style="font-size:85%;"><o:p><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></o:p></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span lang="EN-US" style="font-size:85%;"><span class="Apple-style-span" style="font-family: 'times new roman';">create table persons (</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span lang="EN-US" style="font-size:85%;"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">id NUMBER not null primary key, </span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span lang="EN-US" style="font-size:85%;"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">name VARCHAR2(255)</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span lang="EN-US" style="font-size:85%;"><span class="Apple-style-span" style="font-family: 'times new roman';">);</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span lang="EN-US" style="font-size:85%;"><o:p><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></o:p></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span lang="EN-US" style="font-size:85%;"><span class="Apple-style-span" style="font-family: 'times new roman';">alter table authors </span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span lang="EN-US" style="font-size:85%;"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">add constraint authorsFK0 foreign key (id) references persons;</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span lang="EN-US" style="font-size:85%;"><span class="Apple-style-span" style="font-family: 'times new roman';">alter table author_work </span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span lang="EN-US" style="font-size:85%;"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">add constraint author_workFK0 foreign key (author_id) references authors;</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:85%;"><span class="Apple-style-span" style="font-family: 'times new roman';">alter table author_work</span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="" lang="EN-US"><span style="font-size:85%;"><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span style="font-size:85%;"><span class="Apple-style-span" style="font-family: 'times new roman';">add constraint author_workFK1 foreign key (work_id) references works;</span></span></span></p></blockquote><p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="" lang="EN-US"><span class="Apple-style-span" style="font-family: 'times new roman';"><span style="font-size:85%;"></span></span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="" lang="EN-US"><o:p><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></o:p></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify;"><span class="Apple-style-span" style="font-family: 'times new roman';">Czyli został zastosowany drugi schemat odwzorowania dziedziczenia klas na tabele, mianowicie tabela na każdą hierarchie klas. Z trzech klas (Work, Song, Book) powstała jedna tabela works.</span></p><div style="text-align: justify;"> </div><p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify;"><span class="Apple-style-span" style="font-family: 'times new roman';">Problem asocjacji wiele do wiele został rozwikłany dodaniem tabeli łączącej </span><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">autor_work.</span><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">Ale teraz najważniejsza część: jak Hibernate</span><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">wygenerował klasy oraz pliki mapujące na podstawie tego schematu bazy.</span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:85%;"><span style="" lang="EN-US"><span style="font-size:100%;"><span class="Apple-style-span" style="font-family: 'times new roman';">Klasa Works:</span></span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:85%;"><span class="Apple-style-span" style="font-family: 'times new roman';"><span style="" lang="EN-US"></span></span></span></p><blockquote><p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:85%;"><span style="" lang="EN-US"><span class="Apple-style-span" style="font-family: 'times new roman';">public class Works</span><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">implements java.io.Serializable {</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:85%;"><span style="" lang="EN-US"><o:p><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></o:p><span class="Apple-style-span" style="font-family: 'times new roman';"><br /></span><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">private BigDecimal id;</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:85%;"><span style="" lang="EN-US"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">private BigDecimal tempo;</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:85%;"><span style="" lang="EN-US"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">private String genre;</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:85%;"><span style="" lang="EN-US"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">private Short peges;</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:85%;"><span style="" lang="EN-US"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span></span><span class="Apple-style-span" style="font-family: 'times new roman';">private String title;</span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:85%;"><span style="" lang="EN-US"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">private Set authorses = new HashSet(0);</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:85%;"><span style="" lang="EN-US"><span class="Apple-style-span" style="font-family: 'times new roman';">….</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:85%;"><span style="" lang="EN-US"><span class="Apple-style-span" style="font-family: 'times new roman';">//konstruktory, settery , gettery</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:85%;"><span style="" lang="EN-US"><span class="Apple-style-span" style="font-family: 'times new roman';">}</span></span></span></p></blockquote><p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:85%;"><span style="" lang="EN-US"><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:85%;"><span style="" lang="EN-US"><o:p><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></o:p></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:85%;"><span style="" lang="EN-US"><span style="font-size:100%;"><span class="Apple-style-span" style="font-family: 'times new roman';">Klasa Authors:</span></span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:85%;"><span class="Apple-style-span" style="font-family: 'times new roman';"><span style="" lang="EN-US"></span></span></span></p><blockquote><p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:85%;"><span style="" lang="EN-US"><span class="Apple-style-span" style="font-family: 'times new roman';">public class Authors</span><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">implements java.io.Serializable {</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:85%;"><span style="" lang="EN-US"><o:p><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></o:p><span class="Apple-style-span" style="font-family: 'times new roman';"><br /></span><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">private BigDecimal id;</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:85%;"><span style="" lang="EN-US"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">private Persons persons;</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:85%;"><span style="" lang="EN-US"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">private String alias;</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:85%;"><span style="" lang="EN-US"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">private Set workses = new HashSet(0);</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:85%;"><span style="" lang="EN-US"><span class="Apple-style-span" style="font-family: 'times new roman';">…</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:85%;"><span style="" lang="EN-US"><span class="Apple-style-span" style="font-family: 'times new roman';">}</span></span></span></p></blockquote><p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:85%;"><span style="" lang="EN-US"><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:85%;"><span style="" lang="EN-US"><o:p><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></o:p></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:85%;"><span style="" lang="EN-US"><span style="font-size:100%;"><span class="Apple-style-span" style="font-family: 'times new roman';">Klasa Persons</span></span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:85%;"><span style="" lang="EN-US"><o:p><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></o:p></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:85%;"><span class="Apple-style-span" style="font-family: 'times new roman';"><span style="" lang="EN-US"></span></span></span></p><blockquote><p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:85%;"><span style="" lang="EN-US"><span class="Apple-style-span" style="font-family: 'times new roman';">public class Persons</span><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">implements java.io.Serializable {</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:85%;"><span style="" lang="EN-US"><o:p><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></o:p><span class="Apple-style-span" style="font-family: 'times new roman';"><br /></span><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">private BigDecimal id;</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:85%;"><span style="" lang="EN-US"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">private String name;</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:85%;"><span style="" lang="EN-US"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">private Set authorses = new HashSet(0);</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:85%;"><span class="Apple-style-span" style="font-family: 'times new roman';">…</span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:85%;"><span class="Apple-style-span" style="font-family: 'times new roman';">}</span></span></p></blockquote><p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span class="Apple-style-span" style="font-family: 'times new roman';"><span style="font-size:85%;"></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify;"><span class="Apple-style-span" style="font-family: 'times new roman';">Nic tu zaskakującego na razie nie ma poza tym, że nie została zaimplementowana Klasa AuthorWork na podstawie tabeli author_work. </span><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">Jak więc Hibernate poradzi sobie z zapisem danych do odpowiednich tabel? Otóż właśnie po to zostały utworzone tak zwane pliki mapujące. </span><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">Warto się im dokładnie przyjrzeć. Niestety umieszczenie tych kodów w całości jest bardzo nieczytelne postaram się opisać ich fragmenty.</span></p><p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span class="Apple-style-span" style="font-family: 'times new roman';">Plik Works.hbm.xml<br />- Zdefiniowanie nazwy (name) klasy oraz nazwy tabeli (table)<br /><br /></span></p><blockquote><span class="Apple-style-span" style="font-family: 'times new roman';"> <class name="przykad1.Works" table="WORKS"></span></blockquote><span class="Apple-style-span" style="font-family: 'times new roman';"><br /><br /></span><div style="text-align: justify;"><span class="Apple-style-span" style="font-family: 'times new roman';">- Klucz wygenerowany przez aplikację. Stworzone jest specjalne pole dla klucza <id> posiada ono takie atrybuty: nazwę(name), czyli jak będzie nazwane to pole w klasie oraz typ(type). W znacznik column określane są własności kolumny tej tabeli . Dodatkowo dołączona jest informacja w jaki sposób ma być generowany klucz. Podstawowe generatory to: native, identity, sequence, assigned.<br /></span></div><span class="Apple-style-span" style="font-family: 'times new roman';"><br /></span><blockquote><span class="Apple-style-span" style="font-family: 'times new roman';"><id name="id" type="big_decimal"><br /> <column name="ID" precision="22" scale="0" /><br /> <generator class="assigned" /><br /></id></span></blockquote><span class="Apple-style-span" style="font-family: 'times new roman';"><br /><br /></span><div style="text-align: justify;"><span class="Apple-style-span" style="font-family: 'times new roman';">- Aby opisać całą tabelę trzeba zdeklarować wszystkie kolumny w tabeli połączone z odpowiednimi polami w klasie, oczywiście trzeba jeszcze określić typy.<br /></span></div><span class="Apple-style-span" style="font-family: 'times new roman';"><br /></span><blockquote><span class="Apple-style-span" style="font-family: 'times new roman';"><property name="tempo" type="big_decimal"><br /> <column name="TEMPO" precision="22" scale="0" /><br /> </property></span></blockquote><span class="Apple-style-span" style="font-family: 'times new roman';"><br /><br /></span><div style="text-align: justify;"><span class="Apple-style-span" style="font-family: 'times new roman';">- Element <set> informuje, że dane pole jest typu java.util.Set. W tym przykładzie ma ono nazwę authorses. Ponieważ wystąpiła tu relacja wiele do wielu, wymaga to utworzenia dodatkowej tabeli łączącej, dlatego została określona nazwa tej tabeli AUTHOR_WORK.<br /></span></div><span class="Apple-style-span" style="font-family: 'times new roman';"><br /></span><blockquote><span class="Apple-style-span" style="font-family: 'times new roman';"><set name="authorses" inverse="false" table="AUTHOR_WORK"><br /> <key><br /> <column name="WORK_ID" precision="22" scale="0" not-null="true" /><br /> </key><br /> <many-to-many entity-name="przykad1.Authors"><br /> <column name="AUTHOR_ID" precision="22" scale="0" not-null="true" /><br /> </many-to-many><br /></set></span></blockquote><span class="Apple-style-span" style="font-family: 'times new roman';"><br /><br /></span><div style="text-align: justify;"><span class="Apple-style-span" style="font-family: 'times new roman';">Inne pliki zostały odwzorowane według podobnych schematów. Może jeszcze jeden przykład tym razem relacji jeden do wiele.<br /><br /></span></div><span class="Apple-style-span" style="font-family: 'times new roman';">Plik: Persons.hmb.xml</span><p></p><p class="MsoNormal" style="margin-bottom: 0.0001pt;"></p><blockquote><span class="Apple-style-span" style="font-family: 'times new roman';"> <set name="authorses" inverse="true"><br /> <key><br /> <column name="ID" precision="22" scale="0" not-null="true" unique="true" /><br /> </key><br /> <one-to-many class="przykad1.Authors" /><br /> </set></span></blockquote><p></p><p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span class="Apple-style-span" style="font-family: 'times new roman';">Oraz odzwierciedlenie tej relacji wpliku Authors.hmb.xml</span></p><p class="MsoNormal" style="margin-bottom: 0.0001pt;"></p><blockquote><span class="Apple-style-span" style="font-family: 'times new roman';"><many-to-one name="persons" class="przykad1.Persons" update="false" insert="false" fetch="select"><br /> <column name="ID" precision="22" scale="0" not-null="true" unique="true" /><br /> </many-to-one></span></blockquote><span class="Apple-style-span" style="font-family: 'times new roman';"><br /><br /><br /></span><p></p><br /><p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:78%;"></span></p>Agata Wojciechowskahttp://www.blogger.com/profile/06118995696321699530noreply@blogger.com0tag:blogger.com,1999:blog-8059821708792041760.post-77530792807264661092008-11-23T06:38:00.000-08:002009-01-29T10:39:14.611-08:00Odwzorowanie dziedziczenia, asocjacji i kompozycji w bazie<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_SdDS_Xmza58/SSlreudbFEI/AAAAAAAAEGg/KJuKcsmcx0k/s1600-h/dziedziczenie1.jpg"><span class="Apple-style-span" style="font-family: 'times new roman';"><br /></span></a><span class="Apple-style-span" style="font-family: 'times new roman';"> </span><p style="text-align: justify;" class="MsoNormal"><span class="Apple-style-span" style="font-family: 'times new roman';">Cel:</span><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span style="line-height: 115%;font-size:100%;"><span class="Apple-style-span" style="font-family: 'times new roman';">St</span></span><span style="line-height: 115%;font-size:100%;"><span class="Apple-style-span" style="font-family: 'times new roman';">worzenie efektywnego modelu o</span></span><span style="line-height: 115%;font-size:100%;"><span class="Apple-style-span" style="font-family: 'times new roman';">biektowego przy pomoc</span></span><span style="line-height: 115%;font-size:100%;"><span class="Apple-style-span" style="font-family: 'times new roman';">y Hibernate: dziedziczenie, </span></span><span style="line-height: 115%;font-size:100%;"><span class="Apple-style-span" style="font-family: 'times new roman';">asocjacja</span></span><span style="line-height: 115%;font-size:100%;"><span class="Apple-style-span" style="font-family: 'times new roman';">, kompozycja. Wybór strategii odzwierciedlenia dziedziczenia w bazie danych.</span></span></p><div style="text-align: justify;"> </div><p style="text-align: justify;" class="MsoNormal"><span class="Apple-style-span" style="font-family: 'times new roman';">Trochę inna strona Hibernate. </span><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">Do tej pory praca z Hibernate wyglądała następująco: po prawidłowym skonfigurowaniu połączenia z bazą danych należało</span><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">stworzyć model obiektowy baz danych, a następnie przy pomocy plików mapujących można było wygenerować schemat bazy danych. Jest to tak zwane "podejście z góry w dół". </span></p><div style="text-align: justify;"> </div><p style="text-align: justify;" class="MsoNormal"><span class="Apple-style-span" style="font-family: 'times new roman';">W NetBeans 6.5 zostało dodane narzędzie, które umożliwia odwrotny scenariusz odwzorowywania, czyli na początku tworzony jest schemat bazy danych, a następnie przy pomocy narzędzi Hibernate</span><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">zostają wygenerowane klasy Javy oraz pliki odwzorowań. </span><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">Tak zwane "podejście z dołu do góry".</span></p><div style="text-align: justify;"> </div><p style="text-align: justify;" class="MsoNormal"><span class="Apple-style-span" style="font-family: 'times new roman';">Jednak problemy</span><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">odwzorowania relacyjno obiektowego nie znikają. Schemat obiektowy posiada wiele takich własności, których nie można bezpośrednio przełożyć na schemat relacyjny. Problem pojawia się w momencie gdy chcemy odzwierciedlić dziedziczenie, </span><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">asocjacje czy kompozycję. </span><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span></p><div style="text-align: justify;"> </div><p style="text-align: justify;" class="MsoNormal"><span class="Apple-style-span" style="font-family: 'times new roman';">1. Dziedziczenie</span></p><div style="text-align: justify;"> </div><p style="text-align: justify;" class="MsoNormal"><span class="Apple-style-span" style="font-family: 'times new roman';">Istnieją trzy różne podejścia stosowane do odwzorowania dziedziczenia:</span></p><div style="text-align: justify;"> </div><p style="text-align: justify;" class="MsoNormal"><span class="Apple-style-span" style="font-family: 'times new roman';">1.1. Tabela na każdą klasę konkretną – dokładnie jedna tabela na każdą nieabstrakcyjną klasę, wszystkie własności klasy nadrzędnej są dopisywane do klas dziedziczącej. </span><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span></p><div style="text-align: justify;"> </div><p style="text-align: justify;" class="MsoNormal"><span class="Apple-style-span" style="font-family: 'times new roman';">WADA: </span><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">Zapytanie dotyczące klasy bazowej musi zostać rozbite na wiele poleceń SELECT, często jest to mało wydajne.</span></p> <p class="MsoNormal"><span class="Apple-style-span" style="font-family: 'times new roman';">Wygląda to tak:</span><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_SdDS_Xmza58/SSlroV_8aCI/AAAAAAAAEGo/KOzR4SCQm-4/s1600-h/dziedziczenie1.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 160px;" src="http://1.bp.blogspot.com/_SdDS_Xmza58/SSlroV_8aCI/AAAAAAAAEGo/KOzR4SCQm-4/s400/dziedziczenie1.jpg" alt="" id="BLOGGER_PHOTO_ID_5271863179658160162" border="0" /></a></p><span class="Apple-style-span" style="font-family: 'times new roman';"><br /></span><p class="MsoNormal"> </p><p style="text-align: justify;" class="MsoNormal"><span class="Apple-style-span" style="font-family: 'times new roman';">1.2. Tabela na każdą hierarchie klas – czyli całą hierarchia klas odwzorowywana jest w jednej tabeli. Dodatkowo dodawana jest kolumna dyskryminatora typu.</span></p><div style="text-align: justify;"> </div><p style="text-align: justify;" class="MsoNormal"><span class="Apple-style-span" style="font-family: 'times new roman';">WADA: </span><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">Nie można nadać ograniczenia Not null dla kolumn które są właściwościami podklasy.</span></p> <a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_SdDS_Xmza58/SSlr_skXqxI/AAAAAAAAEGw/NWFwGF_-WQ8/s1600-h/dziedziczenie2.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 195px;" src="http://1.bp.blogspot.com/_SdDS_Xmza58/SSlr_skXqxI/AAAAAAAAEGw/NWFwGF_-WQ8/s400/dziedziczenie2.jpg" alt="" id="BLOGGER_PHOTO_ID_5271863580853512978" border="0" /></a><span class="Apple-style-span" style="font-family: 'times new roman';"> </span><p style="text-align: justify;" class="MsoNormal"><span class="Apple-style-span" style="font-family: 'times new roman';">1.3. Tabela na każdą podklasę – czyli każda klasa jest reprezentowana jako jedna tabela w bazie i podklasy są w asocjacji z klasą nadrzędną. </span><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span></p> <p class="MsoNormal"><span class="Apple-style-span" style="font-family: 'times new roman';">WADA: Złożone zapytania.</span></p> <a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_SdDS_Xmza58/SSlsTEh_eBI/AAAAAAAAEG4/mg5DAY9nvn8/s1600-h/dziedziczenie3.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 158px;" src="http://3.bp.blogspot.com/_SdDS_Xmza58/SSlsTEh_eBI/AAAAAAAAEG4/mg5DAY9nvn8/s400/dziedziczenie3.jpg" alt="" id="BLOGGER_PHOTO_ID_5271863913703503890" border="0" /></a><span class="Apple-style-span" style="font-family: 'times new roman';"><br /></span><p style="text-align: justify;" class="MsoNormal"><span class="Apple-style-span" style="font-family: 'times new roman';">Wszystkie te modele mają swoje wady i zalety tak więc należy stosować strategię odpowiednią do konkretnego schematu.</span></p><span class="Apple-style-span" style="font-family: 'times new roman';"><br />Tu omówiony został przykład:<br /></span><a href="http://agatkiwoj.blogspot.com/2008/11/odwzrowanie-dziedziczenia-przykad.html"><span class="Apple-style-span" style="font-family: 'times new roman';">Odwzorowanie dziedziczenia przykład</span></a><span class="Apple-style-span" style="font-family: 'times new roman';"><br />http://agatkiwoj.blogspot.com/2008/11/odwzrowanie-dziedziczenia-przykad.html</span>Agata Wojciechowskahttp://www.blogger.com/profile/06118995696321699530noreply@blogger.com0tag:blogger.com,1999:blog-8059821708792041760.post-72173316608071054752008-11-22T08:58:00.000-08:002009-01-29T10:39:48.625-08:00Połączenie Hiberante z Oraclem<span style="line-height: 115%;"><span style=""> </span></span><span style="line-height: 115%;"><span class="Apple-style-span" style="font-family: 'times new roman';">1. Opis konfiguracji<br /></span></span><div style="text-align: justify;"><span style="line-height: 115%;"><span class="Apple-style-span" style="font-family: 'times new roman';">Wszystkie ustawienia jakie będą opisane poniżej należy dokonać w pliku właściwości Javy o nazwie hibernate.properties lub w pliku XML o nazwie hibernate.cfg.xml co zostanie dokładniej opisane w kolejnym punkcie. Pliki te różnią się formą zapisu jednak opisy danych, które mają znaleźć się w obu plikach są takie same. Większość źródeł wiedzy o Hibernate jak i sama dokumentacja zalecają konfigurację Hibernate przy pomocy meta danych.</span></span><span class="Apple-style-span" style="font-family: 'times new roman';"><br /></span><span style="line-height: 115%;"><span class="Apple-style-span" style="font-family: 'times new roman';">Plik konfiguracyjny składają się z listy pól właściwości. Większość właściwości przyjmuje odpowiednie wartości i nie ma potrzeby ich konfigurować. Jednak </span></span><span style="line-height: 115%;"><span class="Apple-style-span" style="font-family: 'times new roman';">niektóre własności </span></span><span style="line-height: 115%;"><span class="Apple-style-span" style="font-family: 'times new roman';">musimy koniecznie skonfigurować należą do nich: </span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></div><ul style="text-align: justify;font-family:georgia;"><li><!--[if !supportLists]--><span style="line-height: 115%;font-size:100%;"><span style=""><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span></span></span><span style="line-height: 115%;font-size:100%;" lang="EN-US"><span class="Apple-style-span" style="font-family: 'times new roman';">hibernate.connection.driver_class</span></span><span style="font-size:100%;"><i style=""><span style="line-height: 115%;" lang="EN-US"><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span></i></span><span style="line-height: 115%;font-size:100%;" lang="EN-US"><span class="Apple-style-span" style="font-family: 'times new roman';">– czyli klasa sterownika JDBC. </span></span><span style="line-height: 115%;font-size:100%;"><span class="Apple-style-span" style="font-family: 'times new roman';">Aby skorzystać z Framework Hibernate należy dołączyć do projektu bibliotekę (JAR) sterownika JDBC, który należy dopasować do konkretnej relacyjnej bazy danych. Sterownik ten należy pobrać ze strony bazy danych, z którą chcemy połączyć Hibernate.</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></li><li><!--[if !supportLists]--><span style="line-height: 115%;font-size:100%;"><span style=""><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span></span></span><span style="line-height: 115%;font-size:100%;"><span class="Apple-style-span" style="font-family: 'times new roman';">hibernate.dialect -</span></span><span style="font-size:100%;"><i style=""><span style="line-height: 115%;"><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span></i></span><span style="line-height: 115%;font-size:100%;"><span class="Apple-style-span" style="font-family: 'times new roman';">dialekt SQL wykorzystywany przez Hibernate. Ponieważ każda baza danych zachowuje się inaczej utworzono specjalne dialekty Hibernate, które usuwają te różnice. W projekcie należy określić z jakiego dialektu korzystamy w pliku konfiguracyjnym Hiberante. Dialekt definiuje odmianę języka SQL i cechy szczególne bazy danych. </span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></li><li><!--[if !supportLists]--><span style="line-height: 115%;font-size:100%;"><span style=""><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span></span></span><!--[endif]--><span style="line-height: 115%;font-size:100%;"><span class="Apple-style-span" style="font-family: 'times new roman';">hibernate.connection.url – </span></span><span style="line-height: 115%;font-size:100%;"><span class="Apple-style-span" style="font-family: 'times new roman';">podany przez JDBC adres URL do egzemplarza baz danych.</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></li><li><!--[if !supportLists]--><span style="line-height: 115%;font-size:100%;"><span style=""><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span></span></span><!--[endif]--><span style="line-height: 115%;font-size:100%;"><span class="Apple-style-span" style="font-family: 'times new roman';">hibernate.connection.username – </span></span><span style="line-height: 115%;font-size:100%;"><span class="Apple-style-span" style="font-family: 'times new roman';">nazwa użytkownika bazy danych.</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></li><li><!--[if !supportLists]--><span style="line-height: 115%;font-size:100%;" lang="EN-US"><span style=""><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span></span></span><!--[endif]--><span style="line-height: 115%;font-size:100%;" lang="EN-US"><span class="Apple-style-span" style="font-family: 'times new roman';">hibernate.connection.password – </span></span><span style="line-height: 115%;font-size:100%;" lang="EN-US"><span class="Apple-style-span" style="font-family: 'times new roman';">hasło do bazy danych.</span></span></li></ul><div style="text-align: justify;"><span class="Apple-style-span" style="font-family: 'times new roman';"> 2. Przykład</span><span><span class="Apple-style-span" style="font-family: 'times new roman';"> konfiguracji H</span></span><span class="Apple-style-span" style="font-family: 'times new roman';">iberante za pomocą meta danych zapisywany jest w projekcie jako plik hibernate.cfg.xml. Prezentowana aplikacja łączy się z bazą Oracle 10g.<br /></span></div><span class="Apple-style-span" style="font-family: 'times new roman';"><br /><?xml version="1.0" encoding="UTF-8"?><br /><!DOCTYPE hibernate-configuration PUBLIC "<br />-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><br /><hibernate-configuration><br /><session-factory><br /> <property name="hibernate.dialect">org.hibernate.dialect.OracleDialect<br /> </property><br /> <property name="hibernate.connection.driver_class">oracle.jdbc.OracleDriver<br /> </property><br /> <property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:orcl<br /> </property><br /> <property name="hibernate.connection.username">uzytkownik<br /> </property><br /> <property name="hibernate.connection.password">haslo<br /> </property><br /><mapping resource="paczka/nazwaKlasy.hbm.xml" /><br /></session-factory><br /></hibernate-configuration><br /><br />Przy pomocy znacznika <property> można określić właściwości połączenia z bazą danych. Znacznik &l;tmapping&p; służy do konfiguracji odwzorowań.<br /><br />Źródła: Hiberante od Nowicjusza do Profesjonalisty, Dave Minter, Jeff Linwood<br /></span><br /><span style="line-height: 115%;"><o:p></o:p></span>Agata Wojciechowskahttp://www.blogger.com/profile/06118995696321699530noreply@blogger.com0tag:blogger.com,1999:blog-8059821708792041760.post-55588265502901758272008-11-21T11:01:00.000-08:002009-01-29T10:41:01.599-08:00Hibernate + NetBeans 6.5 krok po kroku<span class="Apple-style-span" style="font-family: 'times new roman';">Przykład stworzony jest przy pomocy </span><span style="font-weight: bold;"><span class="Apple-style-span" style="font-family: 'times new roman';">NetBeans 6.5</span></span><span class="Apple-style-span" style="font-family: 'times new roman';"> oraz technologii </span><span style="font-weight: bold;"><span class="Apple-style-span" style="font-family: 'times new roman';">Hibernate 3.5</span></span><span class="Apple-style-span" style="font-family: 'times new roman';">. Baza danych to </span><span style="font-weight: bold;"><span class="Apple-style-span" style="font-family: 'times new roman';">Oracle 10g</span></span><span class="Apple-style-span" style="font-family: 'times new roman';">.<br /></span><p class="MsoNormal"><span class="Apple-style-span" style="font-family: 'times new roman';">1.</span><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">Tworzymy nowy projekt </span><span style="font-weight: bold;"><span class="Apple-style-span" style="font-family: 'times new roman';">Ctrl+Shift+N</span></span><span class="Apple-style-span" style="font-family: 'times new roman';"> z kategorii </span><span style="font-weight: bold;"><span class="Apple-style-span" style="font-family: 'times new roman';">Java</span></span><span class="Apple-style-span" style="font-family: 'times new roman';"> - > </span><span style="font-weight: bold;"><span class="Apple-style-span" style="font-family: 'times new roman';">Java Aplication</span></span><span class="Apple-style-span" style="font-family: 'times new roman';"> następnie </span><span style="font-weight: bold;"><span class="Apple-style-span" style="font-family: 'times new roman';">Next</span></span><span class="Apple-style-span" style="font-family: 'times new roman';">. Wpisujemy nazwę projektu Przykład1 oraz wybieramy ścieżkę docelową, gdzie zostanie utworzony projekt. A następnie przycisk </span><span style="font-weight: bold;"><span class="Apple-style-span" style="font-family: 'times new roman';">Finish</span></span><span class="Apple-style-span" style="font-family: 'times new roman';">.</span></p><p class="MsoNormal"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_SdDS_Xmza58/SSgM7292a1I/AAAAAAAAEGU/Ti6hQJpx5nA/s1600-h/rys1.JPG"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 220px;" src="http://4.bp.blogspot.com/_SdDS_Xmza58/SSgM7292a1I/AAAAAAAAEGU/Ti6hQJpx5nA/s320/rys1.JPG" alt="" id="BLOGGER_PHOTO_ID_5271477586343914322" border="0" /></a></p><p class="MsoNormal"><span class="Apple-style-span" style="font-family: 'times new roman';">2. Jeśli jeszcze nie mamy wcześniej zainstalowanego Hibernate można to zrobić przy pomocy</span><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span style="font-weight: bold;"><span class="Apple-style-span" style="font-family: 'times new roman';">Tools</span></span><span class="Apple-style-span" style="font-family: 'times new roman';"> -> </span><span style="font-weight: bold;"><span class="Apple-style-span" style="font-family: 'times new roman';">Plugins</span></span><span class="Apple-style-span" style="font-family: 'times new roman';"> a następnie wybrać </span><span style="font-weight: bold;"><span class="Apple-style-span" style="font-family: 'times new roman';">Hibernate Support</span></span><span class="Apple-style-span" style="font-family: 'times new roman';"> oraz </span><span style="font-weight: bold;"><span class="Apple-style-span" style="font-family: 'times new roman';">Hibernate 3.2.5 Library</span></span><span class="Apple-style-span" style="font-family: 'times new roman';"> i </span><span style="font-weight: bold;"><span class="Apple-style-span" style="font-family: 'times new roman';">Install</span></span><span class="Apple-style-span" style="font-family: 'times new roman';">.</span></p><p></p> <p class="MsoNormal"> </p><p class="MsoNormal"><span class="Apple-style-span" style="font-family: 'times new roman';">3.</span><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">Skoro już mamy zainstalowane biblioteki Hibernate powinniśmy je jeszcze dołączyć do naszego projektu. W panelu </span><span style="font-weight: bold;"><span class="Apple-style-span" style="font-family: 'times new roman';">Projects</span></span><span class="Apple-style-span" style="font-family: 'times new roman';"> zaznaczamy</span><span style="line-height: 115%;"><span class="Apple-style-span" style="font-family: 'times new roman';"><span style=""></span></span></span><span style="font-weight: bold;"><span class="Apple-style-span" style="font-family: 'times new roman';">Libraries</span></span><span class="Apple-style-span" style="font-family: 'times new roman';">, potem kolejno </span><span style="font-weight: bold;"><span class="Apple-style-span" style="font-family: 'times new roman';">Add Library</span></span><span class="Apple-style-span" style="font-family: 'times new roman';">.</span><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_SdDS_Xmza58/SSfPn-M0WtI/AAAAAAAAEFc/zWsmgB5CZdM/s1600-h/rys2.JPG"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 265px; height: 320px;" src="http://1.bp.blogspot.com/_SdDS_Xmza58/SSfPn-M0WtI/AAAAAAAAEFc/zWsmgB5CZdM/s320/rys2.JPG" alt="" id="BLOGGER_PHOTO_ID_5271410174479063762" border="0" /></a></p><p class="MsoNormal"> </p><p class="MsoNormal"><span class="Apple-style-span" style="font-family: 'times new roman';">4.</span><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">Tworzymy plik konfiguracyjny Hibernate , który powinien się nazywać </span><span style=""><span style="font-weight: bold;"><span class="Apple-style-span" style="font-family: 'times new roman';">hibernate.cfg.xml</span></span><span class="Apple-style-span" style="font-family: 'times new roman';">. </span><span class="Apple-style-span" style="font-family: 'times new roman';"><span style=""></span> </span><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">Wybieramy </span><span style="font-weight: bold;"><span class="Apple-style-span" style="font-family: 'times new roman';">New</span></span><span class="Apple-style-span" style="font-family: 'times new roman';"> -> </span><span style="font-weight: bold;"><span class="Apple-style-span" style="font-family: 'times new roman';">XML Document</span></span><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">i nadajemy mu nazwę </span><span style="font-weight: bold;"><span class="Apple-style-span" style="font-family: 'times new roman';">hibernate.cfg</span></span><span class="Apple-style-span" style="font-family: 'times new roman';"> i </span><span style="font-weight: bold;"><span class="Apple-style-span" style="font-family: 'times new roman';">Next</span></span><span class="Apple-style-span" style="font-family: 'times new roman';">, </span><span style="font-weight: bold;"><span class="Apple-style-span" style="font-family: 'times new roman';">Finish.</span></span></span></p><p class="MsoNormal"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_SdDS_Xmza58/SSfQlKDxFRI/AAAAAAAAEFs/7VEj5PWGbVE/s1600-h/rys3.JPG"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 220px;" src="http://3.bp.blogspot.com/_SdDS_Xmza58/SSfQlKDxFRI/AAAAAAAAEFs/7VEj5PWGbVE/s320/rys3.JPG" alt="" id="BLOGGER_PHOTO_ID_5271411225634346258" border="0" /></a></p><p class="MsoNormal"> </p><p class="MsoNormal"><span class="Apple-style-span" style="font-family: 'times new roman';">I uzupełniamy odpowiednim kodem, przykład pliku konfiguracyjnego:<br /></span></p><p class="MsoNormal"> </p><p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:85%;"><span style="" lang="EN-US"><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:85%;"><span style="" lang="EN-US"><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:85%;"><span style="" lang="EN-US"><hibernate-configuration><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></hibernate-configuration></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:85%;"><span style="" lang="EN-US"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><session-factory><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></session-factory></span></span></p><p class="MsoNormal" style="margin-bottom: 0.0001pt;"> </p><p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="" lang="EN-US"><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:85%;"><span style="" lang="EN-US"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:85%;"><span style="" lang="EN-US"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="" lang="EN-US"><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify;"></p><blockquote><span class="Apple-style-span" style="font-family: 'times new roman';"><?xml version="1.0" encoding="UTF-8"?><br /><!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><br /><hibernate-configuration><br /><session-factory><br /><property name="hibernate.dialect">org.hibernate.dialect.OracleDialect<br /></property><br /><property name="hibernate.connection.driver_class">oracle.jdbc.OracleDriver<br /></property><br /><property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:orcl<br /></property><br /><property name="hibernate.connection.username">uzytkownik<br /></property><br /><property name="hibernate.connection.password">haslo<br /></property><br /></session-factory><br /></hibernate-configuration></span></blockquote><p></p><span class="Apple-style-span" style="font-family: 'times new roman';"><br /></span><p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify;"><span class="Apple-style-span" style="font-family: 'times new roman';">Więcej o konfiguracji połączenia w artykule </span><a href="http://agatkiwoj.blogspot.com/2008/11/poczenie-hiberante-z-oraclem.html"><span class="Apple-style-span" style="font-family: 'times new roman';">Połączenie Hibernate z Oraclem</span></a><span class="Apple-style-span" style="font-family: 'times new roman';">.<br /></span></p><p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify;"><span class="Apple-style-span" style="font-family: 'times new roman';">5. Kolejną ważną rzeczą jest dodanie sterownika do odpowiedniej bazy danych z którą chcemy połączyć aplikację tzn </span><span style="font-weight: bold;"><span class="Apple-style-span" style="font-family: 'times new roman';">JDBC Driver.</span></span></p><div style="text-align: justify;"> </div><p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: left;"><span class="Apple-style-span" style="font-family: 'times new roman';">Można je pobrać dla Oracle ze strony: </span><a href="http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/index.html"><span class="Apple-style-span" style="font-family: 'times new roman';">http://www.oracle.com/technology/software/tech/java/sqlj_j</span></a><a href="http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/index.html"><span class="Apple-style-span" style="font-family: 'times new roman';">d</span></a><a href="http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/index.html"><span class="Apple-style-span" style="font-family: 'times new roman';">bc/index.html</span></a></p><div style="text-align: justify;"> </div><p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify;"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">Dodajemy to następująco </span><span style="font-weight: bold;"><span class="Apple-style-span" style="font-family: 'times new roman';">Libraries</span></span><span class="Apple-style-span" style="font-family: 'times new roman';"> -></span><span style="font-weight: bold;"><span class="Apple-style-span" style="font-family: 'times new roman';">Properties</span></span><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">-> </span><span style="font-weight: bold;"><span class="Apple-style-span" style="font-family: 'times new roman';">Add JAR</span></span><span class="Apple-style-span" style="font-family: 'times new roman';">/Folder wybieramy odpowiednie archiwum JAR </span><span style="font-weight: bold;"><span class="Apple-style-span" style="font-family: 'times new roman';">Open</span></span><span class="Apple-style-span" style="font-family: 'times new roman';"> i </span><span style="font-weight: bold;"><span class="Apple-style-span" style="font-family: 'times new roman';">Ok</span></span><span class="Apple-style-span" style="font-family: 'times new roman';">.</span></p><p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_SdDS_Xmza58/SSfTPkYI83I/AAAAAAAAEF0/29a2zdA3u1g/s1600-h/rys4.JPG"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 226px;" src="http://4.bp.blogspot.com/_SdDS_Xmza58/SSfTPkYI83I/AAAAAAAAEF0/29a2zdA3u1g/s320/rys4.JPG" alt="" id="BLOGGER_PHOTO_ID_5271414153276879730" border="0" /></a></p><p class="MsoNormal" style="margin-bottom: 0.0001pt;"> </p><p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify;"><span class="Apple-style-span" style="font-family: 'times new roman';">6.</span><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">A teraz coś czego nie można było tworzyć we wcześniejszej wersji Hibernate, czyli generowanie kodu na podstawie istniejących tabel w bazie danych. </span></p><p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span class="Apple-style-span" style="font-family: 'times new roman';">Aby móc skorzystać z tej opcji musimy najpierw w połączonej z Hibernate bazie danych stworzyć tabele. Dla zademonstrowanie tego przykładu utworzyłam taką tabelę w Oraclu:</span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span class="Apple-style-span" style="font-family: 'times new roman';"><span style="font-size:85%;"></span></span></p><blockquote><p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:85%;"><span class="Apple-style-span" style="font-family: 'times new roman';">CREATE TABLE Osoba</span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:85%;"><span style="" lang="EN-US"><span class="Apple-style-span" style="font-family: 'times new roman';">(</span><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">imie</span><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">VARCHAR2(15) NOT NULL,</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:85%;"><span style="" lang="EN-US"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">nazwisko</span><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">VARCHAR2(15) NOT NULL,</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:85%;"><span style="" lang="EN-US"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">plec</span><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">VARCHAR2(1)</span><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">CHECK(plec IN ('M','D')),</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:85%;"><span style="" lang="EN-US"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">pesel</span><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">VARCHAR2(11) PRIMARY KEY</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="" lang="EN-US"><span style="font-size:85%;"><span class="Apple-style-span" style="font-family: 'times new roman';">);</span></span></span></p></blockquote><p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="" lang="EN-US"><span class="Apple-style-span" style="font-family: 'times new roman';"><span style="font-size:85%;"></span></span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify;"><span style="" lang="EN-US"><span class="Apple-style-span" style="font-family: 'times new roman';">Używamy </span><span style="font-weight: bold;"><span class="Apple-style-span" style="font-family: 'times new roman';">Crlt+N</span></span><span class="Apple-style-span" style="font-family: 'times new roman';"> wybieramy Categories: </span><span style="font-weight: bold;"><span class="Apple-style-span" style="font-family: 'times new roman';">Hibernate</span></span><span class="Apple-style-span" style="font-family: 'times new roman';"> i File Types: </span><span style="font-weight: bold;"><span class="Apple-style-span" style="font-family: 'times new roman';">Hibernate Mapping Files and POJOs from Database</span></span><span class="Apple-style-span" style="font-family: 'times new roman';">.</span></span></p><p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify;"> </p><p class="MsoNormal" style="margin-bottom: 0.0001pt;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_SdDS_Xmza58/SSfV-xy5xbI/AAAAAAAAEGE/2zrL3rgl70U/s1600-h/rys5.JPG"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 220px;" src="http://2.bp.blogspot.com/_SdDS_Xmza58/SSfV-xy5xbI/AAAAAAAAEGE/2zrL3rgl70U/s320/rys5.JPG" alt="" id="BLOGGER_PHOTO_ID_5271417163355899314" border="0" /></a></p><p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-weight: bold;"><span class="Apple-style-span" style="font-family: 'times new roman';">Next</span></span><span class="Apple-style-span" style="font-family: 'times new roman';">.</span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p>Nadajemy nazwę pliku generateCode</span><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">i dajemy </span><span style="font-weight: bold;"><span class="Apple-style-span" style="font-family: 'times new roman';">Next</span></span><span class="Apple-style-span" style="font-family: 'times new roman';">. Pojawia się okno z nazwą bazy, należy podać hasło i </span><span style="font-weight: bold;"><span class="Apple-style-span" style="font-family: 'times new roman';">OK</span></span><span class="Apple-style-span" style="font-family: 'times new roman';">.</span><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">W oknie </span><span style="font-weight: bold;"><span class="Apple-style-span" style="font-family: 'times new roman';">Available Tables</span></span><span class="Apple-style-span" style="font-family: 'times new roman';"> pojawią się wszystkie tabele, które są utworzone w bazie danych, można dodać tylko część z nich do projektu przyciskiem </span><span style="font-weight: bold;"><span class="Apple-style-span" style="font-family: 'times new roman';">Add</span></span><span class="Apple-style-span" style="font-family: 'times new roman';">. Bądź dodać całą bazę używając przycisku </span><span style="font-weight: bold;"><span class="Apple-style-span" style="font-family: 'times new roman';">Add All</span></span><span class="Apple-style-span" style="font-family: 'times new roman';">. </span><span style="font-weight: bold;"><span class="Apple-style-span" style="font-family: 'times new roman';">Next</span></span><span class="Apple-style-span" style="font-family: 'times new roman';">.</span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_SdDS_Xmza58/SSfUxvis9cI/AAAAAAAAEF8/3Vuf-E9qm_Q/s1600-h/rys6.JPG"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 220px;" src="http://4.bp.blogspot.com/_SdDS_Xmza58/SSfUxvis9cI/AAAAAAAAEF8/3Vuf-E9qm_Q/s320/rys6.JPG" alt="" id="BLOGGER_PHOTO_ID_5271415839901152706" border="0" /></a><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_SdDS_Xmza58/SSfWdB3m7eI/AAAAAAAAEGM/98Z4xLVxCww/s1600-h/rys7.JPG"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 218px;" src="http://4.bp.blogspot.com/_SdDS_Xmza58/SSfWdB3m7eI/AAAAAAAAEGM/98Z4xLVxCww/s320/rys7.JPG" alt="" id="BLOGGER_PHOTO_ID_5271417683066678754" border="0" /></a><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></p><p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span class="Apple-style-span" style="font-family: 'times new roman';">Domyśle ustawienia sprawiają, że zostaną utworzone klasy Javy oraz pliki mapujące Hibernate , tak więc nic nie należy zmieniać, pozostaje przycisk </span><span style="font-weight: bold;"><span class="Apple-style-span" style="font-family: 'times new roman';">Finish</span></span><span class="Apple-style-span" style="font-family: 'times new roman';">. </span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><o:p><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span class="Apple-style-span" style="font-family: 'times new roman';">Powstała dzięki temu klasa </span><span style="font-style: italic;"><span class="Apple-style-span" style="font-family: 'times new roman';">Osoba.java</span></span><span class="Apple-style-span" style="font-family: 'times new roman';"> oraz plik mapujący </span><span style="font-style: italic;"><span class="Apple-style-span" style="font-family: 'times new roman';">Osoba.hbm.xml</span></span><span class="Apple-style-span" style="font-family: 'times new roman';"> oraz plik xml </span><span style="font-style: italic;"><span class="Apple-style-span" style="font-family: 'times new roman';">generateCode.xml</span></span><span class="Apple-style-span" style="font-family: 'times new roman';">.</span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span class="Apple-style-span" style="font-family: 'times new roman';">Aby udowodnić, że to naprawdę super narzędzie skopuję wygenerowane pliki</span></p><p class="MsoNormal" style="margin-bottom: 0.0001pt;"> </p><p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="" lang="EN-US"><span style="font-style: italic;"><span class="Apple-style-span" style="font-family: 'times new roman';">Osoba.java</span></span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="" lang="EN-US"><o:p><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></o:p></span></p><blockquote><p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:78%;"><span style="" lang="EN-US"><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:78%;"><span style="" lang="EN-US"><span class="Apple-style-span" style="font-family: 'times new roman';">package przykad1;</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:78%;"><span style="" lang="EN-US"><o:p><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></o:p></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:78%;"><span style="" lang="EN-US"><span class="Apple-style-span" style="font-family: 'times new roman';">public class Osoba</span><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">implements java.io.Serializable {</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:78%;"><span style="" lang="EN-US"><o:p><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></o:p></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:78%;"><span style="" lang="EN-US"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">private String pesel;</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:78%;"><span style="" lang="EN-US"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">private String imie;</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:78%;"><span style="" lang="EN-US"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">private String nazwisko;</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:78%;"><span style="" lang="EN-US"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">private String plec;</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:78%;"><span style="" lang="EN-US"><o:p><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></o:p></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:78%;"><span style="" lang="EN-US"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">public Osoba() {</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:78%;"><span style="" lang="EN-US"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">}</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:78%;"><span style="" lang="EN-US"><o:p><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></o:p></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:78%;"><span style="" lang="EN-US"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:78%;"><span style="" lang="EN-US"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">public Osoba(String pesel, String imie, String nazwisko) {</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:78%;"><span style="" lang="EN-US"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">this.pesel = pesel;</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:78%;"><span style="" lang="EN-US"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">this.imie = imie;</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:78%;"><span style="" lang="EN-US"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">this.nazwisko = nazwisko;</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:78%;"><span style="" lang="EN-US"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">}</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:78%;"><span style="" lang="EN-US"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">public Osoba(String pesel, String imie, String nazwisko, String plec) {</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:78%;"><span style="" lang="EN-US"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">this.pesel = pesel;</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:78%;"><span style="" lang="EN-US"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">this.imie = imie;</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:78%;"><span style="" lang="EN-US"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span></span><span class="Apple-style-span" style="font-family: 'times new roman';">this.nazwisko = nazwisko;</span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:78%;"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">this.plec = plec;</span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:78%;"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span style="" lang="EN-US"><span class="Apple-style-span" style="font-family: 'times new roman';">}</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:78%;"><span style="" lang="EN-US"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:78%;"><span style="" lang="EN-US"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">public String getPesel() {</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:78%;"><span style="" lang="EN-US"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">return this.pesel;</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:78%;"><span style="" lang="EN-US"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">}</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:78%;"><span style="" lang="EN-US"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:78%;"><span style="" lang="EN-US"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">public void setPesel(String pesel) {</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:78%;"><span style="" lang="EN-US"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">this.pesel = pesel;</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:78%;"><span style="" lang="EN-US"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">}</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:78%;"><span style="" lang="EN-US"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">public String getImie() {</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:78%;"><span style="" lang="EN-US"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">return this.imie;</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:78%;"><span style="" lang="EN-US"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">}</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:78%;"><span style="" lang="EN-US"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:78%;"><span style="" lang="EN-US"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">public void setImie(String imie) {</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:78%;"><span style="" lang="EN-US"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">this.imie = imie;</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:78%;"><span style="" lang="EN-US"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">}</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:78%;"><span style="" lang="EN-US"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">public String getNazwisko() {</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:78%;"><span style="" lang="EN-US"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">return this.nazwisko;</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:78%;"><span style="" lang="EN-US"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span></span><span class="Apple-style-span" style="font-family: 'times new roman';">}</span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:78%;"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:78%;"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">public void setNazwisko(String nazwisko) {</span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:78%;"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">this.nazwisko = nazwisko;</span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:78%;"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">}</span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:78%;"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">public String getPlec() {</span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:78%;"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span style="" lang="EN-US"><span class="Apple-style-span" style="font-family: 'times new roman';">return this.plec;</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:78%;"><span style="" lang="EN-US"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">}</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:78%;"><span style="" lang="EN-US"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:78%;"><span style="" lang="EN-US"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">public void setPlec(String plec) {</span><span class="Apple-style-span" style="font-family: 'times new roman';"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:78%;"><span style="" lang="EN-US"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span></span><span class="Apple-style-span" style="font-family: 'times new roman';">this.plec = plec;</span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:78%;"><span style=""><span class="Apple-style-span" style="font-family: 'times new roman';"> </span></span><span class="Apple-style-span" style="font-family: 'times new roman';">}</span></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt;"><span style="font-size:78%;"><span class="Apple-style-span" style="font-family: 'times new roman';">}</span></span></p></blockquote><p class="MsoNormal" style="margin-bottom: 0.0001pt;"></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify;"> </p><p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify;"><span class="Apple-style-span" style="font-family: 'times new roman';">Zostały więc wygenerowane od razu gettery i settery oraz konstruktory klasy.</span></p><p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify;"><span class="Apple-style-span" style="font-family: 'times new roman';">Plik mapujący wygląda następująco:</span></p><p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify;"></p><blockquote><span class="Apple-style-span" style="font-family: 'times new roman';"><?xml version="1.0"?><br /><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"<br />"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><br /><!-- Generated 2008-11-22 01:24:59 by Hibernate Tools 3.2.1.GA --><br /><hibernate-mapping><br /><class name="przykad1.Osoba" table="OSOBA" schema="AGATA"><br /><id name="pesel" type="string"><br /><column name="PESEL" length="11" /><br /><generator class="assigned" /><br /></id><br /><property name="imie" type="string"><br /><column name="IMIE" length="15" not-null="true" /><br /></property><br /><property name="nazwisko" type="string"><br /><column name="NAZWISKO" length="15" not-null="true" /><br /></property><br /><property name="plec" type="string"><br /><column name="PLEC" length="1" /><br /></property><br /></class><br /></hibernate-mapping></span></blockquote><span class="Apple-style-span" style="font-family: 'times new roman';">Warto również zajrzeć jak zmienił się plik </span><span style="font-weight: bold;"><span class="Apple-style-span" style="font-family: 'times new roman';">hibernate.cfg.xml</span></span><span class="Apple-style-span" style="font-family: 'times new roman';">:<br /><br /></span><blockquote><span class="Apple-style-span" style="font-family: 'times new roman';"><?xml version="1.0" encoding="UTF-8"?><br /><!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><br /><hibernate-configuration><br /><session-factory><br /><property name="hibernate.dialect">org.hibernate.dialect.OracleDialect<br /></property><br /><property name="hibernate.connection.driver_class">oracle.jdbc.OracleDriver<br /></property><br /><property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:orcl<br /></property><br /><property name="hibernate.connection.username">uzytkownik<br /></property><br /><property name="hibernate.connection.password">haslo<br /></property><br /></span><span style="font-weight: bold;"><span class="Apple-style-span" style="font-family: 'times new roman';"> <mapping resource="przykad1/Osoba.hbm.xml"/></span></span><span class="Apple-style-span" style="font-family: 'times new roman';"><br /></session-factory><br /></hibernate-configuration></span></blockquote><span class="Apple-style-span" style="font-family: 'times new roman';"><br />Automatycznie został dodany znacznik ze ścieżką do pliku mapującego.</span><br /><span style="" lang="EN-US"> <o:p></o:p></span><p></p> <p class="MsoNormal"><span style=""><o:p></o:p></span></p>Agata Wojciechowskahttp://www.blogger.com/profile/06118995696321699530noreply@blogger.com1