Há algum tempo atrás eu estava necessitando mapear um objeto geométrico com o Hibernate para um aplicação. Na época fiz várias buscas e não obtive muito sucesso, então mandei uma mensagem para o Diego Plentz, um membro do GUJ especialista em Hibernate, e ele em resposta escreveu um post no seu blog.

Ele me falou que para mapear esses casos especiais o Hibernate oferece um mecanismo muito poderoso : os UserTypes. E partir daí uma solução elegante para o tratamento dos tipos geometry no Hibernate.

O projeto SpatialEJB3 é que um UserType (GeometryType no caso) com a implementação para tratar o tipo Geometry. Ele pode ser usado tanto com Hibernate puro, quanto para EJB3. Para usar o recurso, fica extremamente simples:

@Type(type = “org.postgis.hibernate.GeometryType”)
public Geometry getLocation(){
return location;
}

Fonte: Blog do Plentz