пятница, января 16, 2009

Учим Seam жить только с Hibernate

Формула дня: Seam + JSF + Facelets + Hibernate + PostgerSQL в JBoss Developer Studio или в Eclipse+JBoss Tools
Если это то что вам нужно, то делаем следующее:
1. Открываем JBoss Developer Studio, создаем Seam Web Project
2. В /WebContent/WEB-INF/components.xml
пишем вместо <components следующее

<components xmlns="http://jboss.com/products/seam/components"
xmlns:core="http://jboss.com/products/seam/core"
xmlns:persistence="http://jboss.com/products/seam/persistence"
xmlns:transaction="http://jboss.com/products/seam/transaction"
xmlns:drools="http://jboss.com/products/seam/drools"
xmlns:bpm="http://jboss.com/products/seam/bpm"
xmlns:security="http://jboss.com/products/seam/security"
xmlns:mail="http://jboss.com/products/seam/mail"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation= "http://jboss.com/products/seam/core http://jboss.com/products/seam/core-2.1.xsd
http://jboss.com/products/seam/persistence http://jboss.com/products/seam/persistence-2.1.xsd
http://jboss.com/products/seam/transaction http://jboss.com/products/seam/transaction-2.1.xsd
http://jboss.com/products/seam/drools http://jboss.com/products/seam/drools-2.1.xsd
http://jboss.com/products/seam/bpm http://jboss.com/products/seam/bpm-2.1.xsd
http://jboss.com/products/seam/security http://jboss.com/products/seam/security-2.1.xsd
http://jboss.com/products/seam/mail http://jboss.com/products/seam/mail-2.1.xsd
http://jboss.com/products/seam/components http://jboss.com/products/seam/components-2.1.xsd">

далее убираем разделы
<persistence:managed-persistence-context..>
<persistence:entity-manager-factory..>
и вместо них добавляем

<persistence:hibernate-session-factory name="hibernateSessionFactory"/>
<!--наименование сессии ApplicationDatabase на свое усмотрение. Потом в экшенах используем @In Session ApplicationDatabase -->
<persistence:managed-hibernate-session name="ApplicationDatabase" session-factory="#{hibernateSessionFactory}" auto-create="true"/>
<transaction:hibernate-transaction session="#{ApplicationDatabase}"/>


3. Создаем /src/model/hibernate.cfg.xml, в который пишем

<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="connection.driver_class">org.postgresql.Driver</property>
<!-- путь к северу-базе -->
<property name="connection.url">jdbc:postgresql://localhost:5432/postgres</property>
<!-- имя пользователя -->
<property name="connection.username">postgres</property>
<!-- пароль -->
<property name="connection.password">postgres</property>
<property name="dialect">org.hibernate.dialect.PostgreSQLDialect</property>
<property name="show_sql">false</property>
<property name="hbm2ddl.auto">create-drop</property>
<property name="cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property>
<property name="transaction.flush_before_completion">true</property>
<property name="transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>
<!-- По мере создания здесь будем мапить сущности -->
<mapping class="org.domain.application.entity.myentity"/>
</session-factory>
</hibernate-configuration>

4. Unдеплоим/удаляем *-ds.xml, persistence.xml

Комментариев нет:

Мой список блогов