Gravar objeto no Banco de Dados

Olá pessoal

alguém sabe como posso gravar um objeto Poligono no banco de dados, usando sql ou hibernate?

t+

:shock:

ãh? vamos lá explique um pouco melhor se não parece mais uma pérola :wink: brincadeira mantenha o bom humor …

mas o que vc quer fazer mesmo ?

não entendi a pérola???

o que eu quero é gravar um objeto Poligono(aquele negocio com vários pontos ligados como um pentagono, hexagono. etc)

[quote=cvinicios]não entendi a pérola???

[/quote]

Tentei fazer o tópico fica meio divertida mas não tenho vocação. Vamos lá o que vc precisa fazer ?

Quem sabe eu consigo te ajudar…

[quote=cvinicios]
o que eu quero é gravar um objeto Poligono(aquele negocio com vários pontos ligados como um pentagono, hexagono. etc)[/quote]

Posta o código desse objeto .

tenho a entidade abaixo e um campo que extende java.awt.Poligon quero gravar a entidade no banco

@Table(name="MapaMunicipal")
public class MapaMunicipal {

	@Id @GeneratedValue(strategy = GenerationType.AUTO) 
	public Long id;
	public java.awt.Polygon mapa;
	@Column(name="nome", length=100)
	public String Nome;
....

porem não quero gravar como imagem

Para desenhar um poligono é necessário as coordenadas x e y insira elas no banco como uma string.

Depois é só recuperar essas coordenads e montar o poligono.

Polygon poly = new Polygon(x, y, pts);
screen.drawPolygon(poly);

Não sei se é a melhor solução mas já é uma solução.

eu já tenho os poligonos, só preciso saber como grava-los no banco de dados

Basta gravar as coordenadas no banco de dados.

No BD
duas colunas com campo String x e y e um id para identificar o poligono

o problema é que são muitas coordenadas, e o carregamento dessas cooredenas para reconstruir o objeto demora, eu quero gravar o objeto direta porque acho que o carregamento vai ser mais rápido

tem alguma forma de serializar e gravar no banco ou usar o hashcode do objeto?

Resolvido

serializei os objetos e gravei em um xml, agora o processamento é muito mais rápido, o que demora 30 segundos para processar agora demora 3 seg.

t+

[quote=cvinicios]Resolvido

serializei os objetos e gravei em um xml, agora o processamento é muito mais rápido, o que demora 30 segundos para processar agora demora 3 seg.

t+[/quote]

Ótimo ta aí uma coisa que eu não pensei usar um XSream(framework para XML) da vida pra faze esse trabalho.

Só não sabia que era mais rápido que um acesso a BD.

Este poligono é gerado por uma ferramenta GIS? Ou algum componente do ArcGIS?

Outra coisa muito importante, qual o banco de dados você pretende gravar esses dados geometricos?

O Hibernate permite a criação de UserTypes e existe o projeto SpatialEJB3 é que um UserType do tipo GeometryType.

Com o PostGis e Oracle Spatial fica mais ou menos assim:

@Type(type = ?org.postgis.hibernate.GeometryType?) public Geometry getPoligono(){ return poligono; }

Dá uma olhada nos sites:
http://www.hibernatespatial.org/hibernate-spatial-postgis/source-repository.html
http://trac.osgeo.org/postgis/wiki/UsersWikiSpatialEJB3