style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

Duda existencial: JPA/HIBERNATE/PostgreSQL

Estoy iniciandome en el tema de la persistencia y recurro a ustedes para que me ayuden a definir si utilizo o no JPA/HIBERNATE. Actualmente mi proyecto cuenta con 60 entidades en 7 esquemas diferentes. Aclaro, empiezo desde cero. Mi experiencia es solo con JDBC.

Muchas gracias por su ayuda.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de ezamudio

pues depende

No entendí si lo datos están relacionados: tienes experiencia únicamente en JDBC y tienes un proyecto con 60 entidades en 7 esquemas diferentes; ese proyecto entonces actualmente lo llevas con JDBC? Migrar a Hibernate (o a cualquier otra cosa) no va a estar fácil. Pero si es un proyecto nuevo donde apenas ya identificaron las entidades pero no han empezado a programar, pueden usar Hibernate. De hecho no tienes que usar Hibernate absolutamente para todo; puedes manejar un esquema híbrido en donde usas Hibernate para realizar transacciones, pero puedes usar JDBC para reportes predefinidos, donde el query no cambia, solamente sus parámetros.

Pero si usas Hibernate, definitivamente define tus clases usando las anotaciones de JPA, no te metas ya a usar lo del mapeo con XML.

Algunas aclaraciones y mas complicaciones.

Mi experienecia con JDBC a sido en otras aplicaciones. Este proyecto es totalmente nuevo, de echo el proyecto incluye tambien migrar 5 aplicaciones que estan programadas en PHP. Ahora bien, una de mis principales dudas es que ¿sin Hibernate puedo acceder a las entidades que estan definidas en esquemas de la BD diferentes a public? Esto último es coyuntural. Parte de la funcionalidades de esta proyecto es incluir un WebServices para que otras aplicaciones accedan a ciertas entidades (catalogos), ejemplo actualmente tengo una aplicacionsista desarrollada en Flex que requiere acceder a dos catalogos. Gracias por su tiempo.

Imagen de ezamudio

esquema.tabla

En postgres simplemente haces SELECT * FROM esquema.tabla para cuando el esquema no es public. De hecho en Hibernate tienes que definir la tabla con todo y esquema cuando no está en public.

Ok.

Voy a documentarme como utilizar los esquemas en JPA/Hibernate, nuevamente gracias.

Hay voy.

Hay voy pero tengo un error que no he podido resolver.
Tengo 2 entidades con una relación uno a uno y tengo una tercera relación que precisamente sirve de pivote a dicha relación, sin embargo al momento de generar la consulta el NetBeans me envia el siguiente error:
org.hibernate.HibernateException: cannot simultaneously fetch multiple bags
Ya probe incluir la delcaración @Basic(fetch = FetchType.EAGER) pero sigue le mismo error

public class AreaGdf implements Serializable {

        private static final long serialVersionUID = 1L;

        @Id
        @Basic(optional = false)
        @Column(name = "id_area_gdf")
        private Integer idAreaGdf;

        @Basic(optional = false)
        @Column(name = "clv_area_gdf")
        private String clvAreaGdf;

        @Basic(optional = false)
        @Column(name = "area_gdf")
        private String areaGdf;

        @Basic(fetch = FetchType.EAGER)
        @JoinTable(name = "ep_areagdf", joinColumns = {
                @JoinColumn(name = "id_area_gdf", referencedColumnName = "id_area_gdf")}, inverseJoinColumns = {
                @JoinColumn(name = "id_ep", referencedColumnName = "id_ep")})
        @ManyToMany
        private List<EntePublico> entePublicoList;

        @OneToMany(cascade = CascadeType.ALL, mappedBy = "areaGdf", fetch = FetchType.EAGER)
        private List<ContraloriaInterna> contraloriaInternaList;
       
        @JoinColumn(name = "id_tp_area_gdf", referencedColumnName = "id_tp_area_gdf")
        @ManyToOne(optional = false)
        private TpAreaGdf tpAreaGdf;

AreaGdf relación uno a uno AreaGdfEntePublico relación uno a uno EntePublico
Una Area del GDF tiene una relación uno a uno con un Ente Publico y viceversa, pero no todas las Areas GDF ni todos los Entes Publicos pueden tener una relación con su contraparte.

Algo que me intriga es la anotación @ManyToMany ¿por que?
¿que pasa si a la entidad AreaGdfEntePublico le incluyo una llave primaria?

Espero me puedan ayudar.

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">