FJ31 - Problemas com HSQLDB

Olás,

Eu estou tentando fazer os exercícios do curso descritos na apostila do curso da Caelun (FJ-31), só que eu estou usando o HSQLDB. Porém encontro problemas.

A minha aplicação é o fj31-loja-standalone onde a apostila diz para importar os jars do JBoss, escrecer o persistence.xml e colocar este xml no diretório src/META-INF.

Fiz tudo isso… mas quando rodo a minha aplicação, a tabela não é feita.

Segue o meu persistence.xml e a minha entity.

<?xml version="1.0" encoding="UTF-8"?>

<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_1_0.xsd"
   version="1.0">
	
	<persistence-unit name="loja">
		
		<class>br.com.caelum.loja.entity.Livro</class>
		
		<properties>
		
			<property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>
			<property name="hibernate.connection.driver_class" value="org.hsqldb.jdbcDriver"/>
			<property name="hibernate.connection.url" value="jdbc:hsqldb:file:/workspace/fj31-loja-jpa-standalone/banco"/>
			<property name="hibernate.connection.username" value="sa"/>
			<property name="hibernate.connection.password" value=""/>
			
			<property name="hibernate.hbm2dll.auto" value="update"/>
			<property name="hibernate.show_sql" value="true"/>		
			<property name="hibernate.format_sql" value="true"/>
			
		</properties>
	</persistence-unit>
</persistence>
package br.com.caelum.loja.entity;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.PrePersist;
import javax.persistence.PreUpdate;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@Entity
public class Livro implements Serializable 
{
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 302344134554808174L;

	@Id
	@GeneratedValue
	private Long id;
	
	private String nome;
	private double preco;
	
	@Temporal(TemporalType.TIMESTAMP)
	private Date dataAlteracao;
	
	public double getPreco() {
		return preco;
	}
	public void setPreco(double preco) {
		this.preco = preco;
	}
	/**
	 * @return the dataAlteracao
	 */
	public Date getDataAlteracao() {
		return dataAlteracao;
	}
	/**
	 * @param dataAlteracao the dataAlteracao to set
	 */
	public void setDataAlteracao(Date dataAlteracao) {
		this.dataAlteracao = dataAlteracao;
	}
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	
	@Override
	public String toString() 
	{
		StringBuffer buff = new StringBuffer();
		buff.append("nome: ");
		buff.append(nome);
		buff.append(", preco: ");
		buff.append(preco);
		
		return buff.toString();
	}
	/**
	 * @return the id
	 */
	public Long getId() {
		return id;
	}
	/**
	 * @param id the id to set
	 */
	public void setId(Long id) {
		this.id = id;
	}
	
	@PrePersist
	@PreUpdate
	public void preAltera()
	{
		System.out.println("CALLBACK preAltera(): atualizando data automaticamente");
		this.dataAlteracao = new Date();
	}
}

Opa fala ai meu caro…
a aplicação roda???

se ela roda e apenas não cria a tabela
troca essa linha

   <property name="hibernate.hbm2dll.auto" value="update"/>  

por essa

   <property name="hibernate.hbm2dll.auto" value="create"/>  

Espero ter ajudado!
[]´s

Fala ai cara blzinha??

se a aplicação ta rodando mas ela não ta criando a tabela…
Troca essa linha

<property name="hibernate.hbm2dll.auto" value="update"/>  

por esta

<property name="hibernate.hbm2dll.auto" value="create"/>  

Espero ter ajudado!

[]´s

Olás!!!

Eu fiz a alteração… mas o erro continua…

segue o erro:

Caused by: java.sql.SQLException: Table not found in statement [insert into Livro (id, nome, preco, dataAlteracao) values (null, ?, ?, ?)]

Consegui!!!

O negócio é o seguinte!! Escrevi errado o nome da propriedade!!! é DDL ao invés de DLL!