| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/07/2010 16:33:23
|
jhonyscorrea
Entusiasta Java
Membro desde: 26/05/2009 08:18:44
Mensagens: 24
Offline
|
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"?>
<!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="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property>
<property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
<property name="hibernate.connection.url">jdbc:postgresql://localhost:5432/postgis</property>
<property name="hibernate.connection.username">postgres</property>
<property name="hibernate.connection.password">crm1p</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.format_sql">true</property>
<mapping class="modelo.Evento"/>
</session-factory>
</hibernate-configuration>
--------------------------------------------------------------------
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
|
|
|
 |
|
|
|
|
|
|