Для проекта выходного дня я пытался запустить JPA 2 с Hibernate 3.5. Обратите внимание, что я не получаю никаких ошибок компиляции или исключений времени выполнения (когда я развертываю войну на Tomcat). Ниже мой код -
persistence.xml
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
version="2.0">
<persistence-unit name="postage" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties>
<property name="hibernate.connection.driver_class" value="org.postgresql.Driver"></property>
<property name="hibernate.connection.url" value="jdbc:postgresql://localhost:5432/postage"></property>
<property name="hibernate.connection.username" value="postage"></property>
<property name="hibernate.connection.password" value="postage"></property>
<property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect"></property>
<property name="hibernate.hbm2ddl.auto" value="create-drop"></property>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.ejb.cfgfile" value="/hibernate.cfg.xml"></property>
</properties>
</persistence-unit>
</persistence>
hibernate.cfg.xml
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="current_session_context_class">thread</property>
<!-- mapping files -->
<mapping class="net.rocky.postage.domain.Post"/>
<mapping class="net.rocky.postage.domain.User"/>
</session-factory>
</hibernate-configuration>
У меня есть 2 простых класса сущностей -
@Entity
@Table(name="Post")
public class Post implements Serializable{
@Id
@GeneratedValue
private long id;
private String description;
private String comments;
@OneToOne
private User postedBy;
И
@Entity
@Table(name="PostageUser")
public class User implements Serializable{
@Id
@GeneratedValue
private long id;
private String username;
private String password;
Я что-то здесь упускаю? Я провел всю субботу, пробуя все комбинации. Пожалуйста, помогите мне.
Продолжение 1 : Под неработающим я имею в виду - при развертывании приложения на Tomcat я не вижу 2 таблиц, созданных в Postgres (как я дал create-drop в hbm2ddl).
Продолжение 2 : Спасибо за ваш ответ. Я даже не могу получить Hibernate для записи сообщений. Вот мой конфиг:
log4j.appender.S=org.apache.log4j.ConsoleAppender
log4j.appender.S.layout=org.apache.log4j.PatternLayout
log4j.appender.S.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %c{1} [%p] %m%n
log4j.rootCategory=DEBUG, S
Также в Maven я добавил -
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.6.1</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
</dependency>
по-прежнему нет сообщений журнала из спящего режима