Java - Problema con hibernate y los esquemas de postgreSQL

   
Vista:

Problema con hibernate y los esquemas de postgreSQL

Publicado por john daniel velasquez qscdlo@gmail.com (1 intervención) el 22/12/2015 10:03:18
He creado un proyecto java web con maven en netbeans,
el cual estoy usando hibernate 4 + spring 4 + primefaces 5
el preblema precisamente lo tengo a la hora de insertar

tomen en cuenta que mi bd tiene dos esquemas
"adm" y "com"

los cuales al insertar en cualquier tabla que esta en cualquiera de estos esquemas no se completa la transaction
estoy usando este metodo que he creado
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
public <Entidad> Entidad registrar(Session session, Entidad entidad) throws Exception {
	boolean aux = session == null;
	try {
		if (aux) {
			session = getSession();
			session.beginTransaction();
			LOGGER.info("se creo transaction");
 
		}
 
		session.persist(entidad);
 
		if (aux) {
			session.getTransaction().commit();
			LOGGER.info("se registro" + entidad.getClass().getSimpleName());
		} else {
			LOGGER.info("se registro de la tranction" + entidad.getClass().getSimpleName());
		}
	} catch (Exception e) {
		if (aux) {
			if (session != null) {
				session.getTransaction().rollback();
				LOGGER.error("transaction rollback");
			}
		}
		throw e;
	} finally {
		if (aux) {
			if (session != null) {
				session.close();
				LOGGER.info("session close");
			}
		}
	}
	return entidad;
}

para los que saben sobre Hibernate ya deben entender porque uso persist y no save...
entonces el problema llega aqui:
a la hora de ejecutar el metodo en el log sale

Información: Hibernate: select max(id) from nombre_tabla
WARN: SQL Error: 0, SQLState: 42P01
ERROR: ERROR: no existe la relación «nombre_tabla»
Position: 21


se entien que hibernate para el caso del metodo "persist" primero hace un selec max(id).... para obtener el id maximo y con este dato hacer el insert cuando llegue al "commint".

tomen en cuenta que hice un insert a la tabla x en este caso "nombre_tabla" pero esta tabla está en el esquema "adm"
y tambien tomen en cuenta que los hbm.xml de cada entidad tiene especificado su respectivo esquema.

El error lo entiendo, pero lo que no entiendo es por que "Hibernate" no reconoce el nombre del esquema que tiene mapeado esas tablas.
este error con los esquemas solo me sucede para el metodo "persist".

por favor si alguien puede darme una ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Problema con hibernate y los esquemas de postgreSQL

Publicado por Andrés (231 intervenciones) el 23/12/2015 03:28:03
-Trata de usar schema en el Entity.
-Asegúrate que los usuarios con los que te estas usando, tiene permisos sobre el esquema.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar