Hibernate Spatial: dados espaciais não são inseridos no banco

0 respostas
J

olá pessoal!

Estou usando Hibernate Spatial, e achei um tutorial na web e fiquei feliz por conseguir fazer o código rodar.
Quando fui olhar meu Banco de dados percebi que que todos os campos foram inseridos corretamente, exceto o campo spacial.
Eis aqui as minhas classes e hibernate.cfg.xml:


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



org.hibernate.dialect.PostgreSQLDialect
org.postgresql.Driver
jdbc:postgresql://localhost:5432/postgis
postgres
crm1p
true
true


package modelo;

import org.hibernate.Session;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.SessionFactory;
 
public class HibernateUtil {
    private static final SessionFactory sessionFactory;
 
    static {
        try {
            sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
        } catch (Throwable ex) {
            throw new ExceptionInInitializerError(ex);
        }
    }
 
    public static Session getSession() {
        return sessionFactory.openSession();
    }
}

package modelo;

import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.cfg.Configuration;
import org.hibernate.tool.hbm2ddl.SchemaExport;
 
/**
 *
 * @author lucas
 */
public class GeraBanco {
 
    public static void main(String args[]){
 
        Configuration conf = new AnnotationConfiguration();
        conf.configure();
        SchemaExport se = new SchemaExport(conf);
		se.create(true, true);
    }
}

package modelo;

import com.vividsolutions.jts.geom.Coordinate;
import com.vividsolutions.jts.geom.Geometry;

import com.vividsolutions.jts.geom.GeometryFactory;

import com.vividsolutions.jts.geom.Point;

import com.vividsolutions.jts.geom.PrecisionModel;

import com.vividsolutions.jts.io.ParseException;

import com.vividsolutions.jts.io.WKTReader;
import org.hibernate.Session;

import org.hibernate.Transaction;

/**
 *
 * @author lucas
 */
public class Main {
 
   
	public static void main(String[] args) {
 
        Evento evento = new Evento();
        evento.setId(200);
        evento.setDescricao("Testando");
        
        WKTReader fromText = new WKTReader();
        Geometry geom = null;
        try {
			geom = fromText.read("10,15");
        } catch (ParseException e) {
            
        }
        
        evento.setPonto((Point) geom);
 
        Session session = HibernateUtil.getSession();
        Transaction tx = session.beginTransaction();
        
        System.out.println("aqui!!");
        session.save(evento);
        tx.commit();
        session.close();
    }

}


package modelo;

import com.vividsolutions.jts.geom.Point;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import org.hibernate.annotations.Type;
 
/**
 *
 * @author lucas
 */
@Entity
public class Evento implements Serializable {

    @Id
   // @GeneratedValue
    private long id;
    private String descricao;
    @Type(type="org.hibernatespatial.GeometryUserType")
    @Column(columnDefinition="Point")
    private Point ponto;
 
    public String getDescricao() {
        return descricao;
    }
 
    public void setDescricao(String descricao) {
        this.descricao = descricao;
    }
 
    public long getId() {
        return id;
    }
 
    public void setId(long id) {
        this.id = id;
    }
 
    public Point getPonto() {
        return ponto;
    }
 
    public void setPonto(Point ponto) {
        this.ponto = ponto;
    }
}

Bom, não sei o que está acontecendo. se eu trocar o dialect para org.hibernate.PostgisDialect dá erro, e deixando desse jeito ele não dá erro, mas também não persiste
os dados espaciais.

Se alguém puder ajudar eu ficaria muito grato!!

Um abraço a todos!
Jhonys

Criado 1 de julho de 2010
Respostas 0
Participantes 1