Warning
This page is located in archive.

Jaký je vztah mezi Hibernate a JPA

JPA je standard pro objektově-relační mapování v Javě a specifikuje kontrakt, který musí jednotlivé implementace splňovat. Jednou takovou implementací je Hibernate (ale rozhodně není jedinou implementací).

hibernate.cfg vs. persistence.xml

Jelikož je Hibernate také přímým předchůdcem JPA, tak zde byl dříve než JPA standard. Z tohoto důvodu měl vlastní konfigurační soubor (hibernate.cfg). Tento způsob konfigurace ve Vašich pracích nepoužívejte, není přenositelný mezi jednotlivými JPA implementacemi.

Persistence.xml je naproti tomu standardizovaný způsob konfigurace JPA providerů a je tedy ze své podstaty přenositelný mezi jednotlivými implementacemi.

persistence.xml vs. Spring konfigurace

Trochu jiná situace nastává při použití frameworku Spring, který v rámci své integrace s JPA nabízí několik způsobů, jak obě technologie propojit.

Prvním způsobem je použít pro konfiguraci čistě persitence.xml, druhým je nakonfigurovat JPA skrze Spring, třetím pak řekněme hybridní způsob využívající oba přístupy. Zabývejme systematickými variantami (1 a 2). Výběr je do značné míry otázkou vkusu, jelikož jsou oba rozumným způsobem přenositelné mezi JPA implementacemi. První způsob má výhodu, že nevyžaduje závistlost na Springu, druhý ale zase nevyžaduje další konfigurační způsob s trochu jinou XML syntaxí. Oba jsou srovnatelně schůdné a proto je volba mezi nimi spíše otázkou vkusu programátora.

ui:repeat a h:commandLink

If UICommand or UIInput components are placed inside an iterating component like<h:dataTable>, <ui:repeat>, etc, then you need to ensure that exactly the same value of the component is been preserved during the apply request values phase of the form submit request. JSF will namely reiterate over it to find the clicked link/button and submitted input values. Putting the bean in the view scope and/or making sure that you load the data model in (post)constructor of the bean (and thus not in the getter method!) should fix it.

courses/a7b39wpa/faq.txt · Last modified: 2013/10/04 13:02 (external edit)