Estimado Edgar: Vamos a tratar de desenmarañar esto de los ORM y los JPA y todas las demás siglas que nos fascinan usar en el mundo de Java. Bueno, hay un standard para manejar la persistencia de Datos en Java. Este estandar es JPA (Java Persistance API). Ahora, antes de que existiera JPA, empezaron a existir ORM (Object-Relational Mapping) escritos en Java, como Hibernate. La idea de una librería como Hibernate o de JPA, es que veas una base de datos relacional como Postgres desde un punto de vista de objetos. Con Hibernate ya no ves la bd como un conjunto de tablas y tuplas, sino como colecciones de objetos. Realmente, y te lo digo por experiencia, el uso de Hibernate y de librerías de persistencia hace mucho más fácil el manejo de la data desde el punto de vista de programación orientada a objetos. Ahora, respondiendo tus preguntas: 1. Nop, de ninguna manera JPA sustituye al DBMS. JPA solamente constituye una capa lógica de software que te hace ver las bd's relacionales como bd's orientadas a objetos, pero nada más. Las transacciones las sigue manejando el DBMS, así como el acceso a los datos. De hecho, en el fondo de cualquier implementación de JPA (se me olvidaba decirte que JPA al ser un estandard per se, permite que se hagan implementaciones, Hibernate hizo una de tantas que hay en el mercado) se encuentra JDBC y siempre vas a necesitar un driver de JDBC nativo para la DBMS que vayas a utilizar (por cierto, el driver de JDBC de postgres es uno de los mejores que hay en el mercado, te lo digo por experiencia). 2. Bueno, si usas algún IDE de Java, como Eclipse o Netbeans, para ambos hay plugins tanto para Hibernate, como para Toplink como para implementaciones de JPA para hacer reingenieria reversa desde una bd existente de los POJOS y los archivos de metadata que se necesitan para describir una bd utilizando estas librerias. 3. Esto es lo mejor de la capa de persistencia. Por ejemplo, en el caso de Hibernate, que es lo que yo he usado extensivamente, si generas la metadata de una manera que no se ajuste a alguna base de datos en particular (cosas como la especificación de esquemas, catálogos, etc), entonces, y si por supuesto tienes cuidado al programar, y no utilizas mucho stored procedures, etc, cosas muy propietarias de la bd, entonces: el código que haces lo puedes utilizar para cualquier DBMS relacional!!!!. Igual, esto yo lo he probado y funciona muy bien. Rapidamente te cuento, mi empresa esta levantando de nuevo el sistema de Gestion de Casos del Ministerio Público (MP) de mi país. En el MP utilizan Sybase ASA para las bases de datos de las Fiscalias y ASE para las bases de datos centrales. Debido a problema de licenciamientos (es el gobierno!!) para desarrollar el nuevo sistema usamos PostgreSQL. Usando una capa de persistencia como Hibernate, hemos podido desarrollar el sistema sobre Postgres y luego probarlo en producción sobre ASA y ASE, sin un sólo cambio en el código escrito!! En conclusión, usa persistencia, es complicado y doloroso al principio, pero luego que dominas el arte, te ahorra años en el desarrollo. Espero que estas líneas te hayan servido de algo.
Saludos Marco 2008/8/5 Edgar Enriquez <[EMAIL PROTECTED]> > Gracias German, mi problema es que tengo que hacer una aplicación con un > cliente web y un cliente swing, pero aún no comprendo muy bien la parte del > mapeo objeto-relacional y JPA, porque aveces se refieren a JPA como una > librería y aveces como una especie de standard que se implementa por un > framework como Toplink e Hibernate, glassfish utiliza por default toplink y > parece que se puede modificar para que utilice hibernate, pero yo no > entiendo muy bien algunas cosas: > > > 1. el jpa sustituye al dbms, quiero decir según la documetacion maneja > las transacciones y el acceso a los datos > 2. No he encontrado un ejemplo de como mapear una bdd ya existente, en > los ejemplo mencionan que es posible pero más dificil, asi que siempre > ponen > un ejemplo de como generar la base desde java (que en mi caso no es > funcional) > 3. Y por último una pregunta me surge, si se utiliza glassfish-toplink > o glassfish-hibernate entonces ¿vale la pena utilizar un dbms como > postgres, > o es mejor utilizar mysql, ya que de todas formas el jpa va a manejar las > transacciones y va a asegurar que sea una base de datos ACID? > > > Feliz dia > > ----- Mensaje original ---- > De: German Salinas <[EMAIL PROTECTED]> > Para: Fernando Aguada <[EMAIL PROTECTED]> > CC: Edgar Enriquez <[EMAIL PROTECTED]>; Lista Postgresql < > pgsql-es-ayuda@postgresql.org> > Enviado: sábado, 2 de agosto, 2008 16:32:22 > Asunto: Re: [pgsql-es-ayuda] conectar desde Java > > Estimado, > > Tengo algo de experiencia con J2EE,Postgresql y AJAX cualquier duda sobre > como aplicar esta tecnologia me escribes a mi correo [EMAIL PROTECTED] si > puedo ayudarte lo hare con todo gusto. > > Hago extensiva esta invitacion a cualquier hermano del OPEN SOURCE.. > > Un saludo, > German Salinas > > El 2 de agosto de 2008 7:29, Fernando Aguada<[EMAIL PROTECTED]> > escribió: > >> Hola >> JPA, Hibernate son framework de persistencia, lo que hacen es >> proveer una capa que conecta con un motor de bases de datos cualquiera, de >> esta manera, podrias cambiar de un motor de datos a otro sin que te veas en >> la necesidad de cambiar nada en tu aplicacion. >> Al menos asi lo entiendo yo. >> >> Saludos Cordiales. >> >> >> ----- Original Message ----- From: "Edgar Enriquez" < >> [EMAIL PROTECTED]> >> To: "Marco Castillo" <[EMAIL PROTECTED]>; "lista postgres" < >> pgsql-es-ayuda@postgresql.org> >> Sent: Saturday, August 02, 2008 6:39 AM >> Subject: Re: [pgsql-es-ayuda] conectar desde Java >> >> >> >> >> >> yo también nececito crear una aplicación java para conectarme a una BDD >> postgres, actualmente tengo todo sobre JDBC, pero para utilizar crear un >> servidor me digeron que nececito instalar Glassfish y crear allí las >> conexiones pero luego se habla de JPA, Hibernate y toplink (que >> aparentementa hacen lo mismo) pero al final la conexión la termina haciento >> el JDBC de postgres, alguien sabe cual es la diferencia? porque además >> parece que glassfish maneja la concurrencia (algo que tradicionalmente se >> hace en Postgres) >> >> Saludos a todos y gracia por sus respuestas >> >> >> >> ----- Mensaje original ---- >> De: Marco Castillo <[EMAIL PROTECTED]> >> Para: "pgsql-es-ayuda@postgresql.org" <pgsql-es-ayuda@postgresql.org> >> Enviado: viernes, 1 de agosto, 2008 21:04:54 >> Asunto: Re: [pgsql-es-ayuda] conectar desde Java >> >> >> Pues la idea del foro es aprender y ayudarnos mutuamente (mi percepción >> personal). Aca habemos varios que trabajamos en Java y en PostgreSQL. Haz >> tus preguntas aca y te echamos una mano. >> >> Saludos >> >> Marco >> >> >> 2008/8/1 Fabio Arias <[EMAIL PROTECTED]> >> >> Cualquier cosa que necesitas sobre java+postgresql me escribes con mucho >> gusto te ayudaré >> >> Bye >> >> >> El 1 de agosto de 2008 9:50, Gabriel Ferro<[EMAIL PROTECTED]<[EMAIL >> PROTECTED]> >> >escribió: >> >> ok, mil gracias a todo. logre hacerlo, aunque me cuesta, considerando que >> no se nada de java y soy de la vieja escuela donde objetos y clases no >> existian. >> ¿alguien conoce una lista buena de java+postgre en español? >> >> >> ________________________________ >> >> ¡Buscá desde tu celular! >> Yahoo! oneSEARCH ahora está en Claro >> http://ar.mobile.yahoo.com/onesearch >> >> >> -- >> Fabio Hernando Arias Vera >> Cel. 314 411 7776 >> >> >> ______________________________________________ >> Enviado desde Correo Yahoo! La bandeja de entrada más inteligente. >> -- >> TIP 3: Si encontraste la respuesta a tu problema, publícala, otros te lo >> agradecerán >> > > > ------------------------------ > > Enviado desde Correo > Yahoo!<http://us.rd.yahoo.com/mailuk/taglines/isp/control/*http://us.rd.yahoo.com/evt=52431/*http://es.docs.yahoo.com/mail/overview/index.html> > > La bandeja de entrada más inteligente. >