Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/01/2015, 15:18
jlgarcia1977
 
Fecha de Ingreso: octubre-2008
Ubicación: Madrid
Mensajes: 352
Antigüedad: 16 años, 1 mes
Puntos: 5
Metodo replance texto.

En mi consola Hibernate me da las consultas por un lado la consulta en sí, y al final los parámetros. Pero en las consultas grandes es un engorro ir cambiándolo a mano.
Quiero hacer un método pero no veo una forma fácil y cómoda.

Necesito que dado un String con la query:

Código SQL:
Ver original
  1. SELECT COUNT(*) AS col_0_0_
  2. FROM seleccion.peticion peticionli0_
  3. WHERE peticionli0_.id_peticion IN (
  4.     SELECT peticion1_.id_peticion FROM seleccion.peticion peticion1_
  5.     LEFT OUTER JOIN seleccion.listado_seleccion listadosel2_ ON peticion1_.id_tecnologia=listadosel2_.id
  6.     LEFT OUTER JOIN seleccion.listado_seleccion listadosel3_ ON peticion1_.id_tecnologia_2=listadosel3_.id
  7.     LEFT OUTER JOIN seleccion.listado_seleccion listadosel4_ ON peticion1_.id_puesto=listadosel4_.id
  8.     LEFT OUTER JOIN seleccion.listado_seleccion listadosel5_ ON peticion1_.categoria=listadosel5_.id
  9.     LEFT OUTER JOIN commons.usuario usuario6_ ON peticion1_.id_usuario_gerente=usuario6_.id
  10.     LEFT OUTER JOIN commons.usuario usuario7_ ON peticion1_.id_tecnico_seleccion_1=usuario7_.id
  11.     LEFT OUTER JOIN commons.usuario usuario8_ ON peticion1_.id_tecnico_seleccion_2=usuario8_.id
  12.     LEFT OUTER JOIN commons.contacto contactoco9_ ON peticion1_.contacto_comun=contactoco9_.id
  13.     LEFT OUTER JOIN commons.cliente clientecom10_ ON peticion1_.cliente_comun=clientecom10_.id
  14.     CROSS JOIN seleccion.listado_seleccion listadosel11_
  15.     CROSS JOIN seleccion.listado_seleccion listadosel12_
  16.     CROSS JOIN seleccion.listado_seleccion listadosel13_
  17.     WHERE peticion1_.id_puesto=listadosel11_.id
  18.     AND peticion1_.id_tecnologia=listadosel12_.id
  19.     AND peticion1_.id_tecnologia_2=listadosel13_.id
  20.     AND peticion1_.security_domain_id=?
  21.     AND (LOWER(translate(TRIM(BOTH FROM peticion1_.perfil_tecnico), ?, ?)) LIKE LOWER(translate(?, ?, ?))
  22.         OR LOWER(translate(TRIM(BOTH FROM peticion1_.etiquetas), ?, ?)) LIKE LOWER(translate(?, ?, ?))
  23.         OR LOWER(translate(TRIM(BOTH FROM peticion1_.observaciones_peti), ?, ?)) LIKE LOWER(translate(?, ?, ?))
  24.         OR LOWER(translate(TRIM(BOTH FROM listadosel11_.nombre), ?, ?)) LIKE LOWER(translate(?, ?, ?))
  25.         OR LOWER(translate(TRIM(BOTH FROM listadosel12_.nombre), ?, ?)) LIKE LOWER(translate(?, ?, ?))
  26.         OR LOWER(translate(TRIM(BOTH FROM listadosel13_.nombre), ?, ?)) LIKE LOWER(translate(?, ?, ?)))

Y un segundo String con los parametros.

Código SQL:
Ver original
  1. parameter [1] AS [BIGINT] - 2,                                                              
  2. parameter [2] AS [VARCHAR] - 'áàâãäéèêëíìïóòôõöúùûüÁÀÂÃÄÉÈÊËÍÌÏÓÒÔÕÖÚÙÛÜçÇ',                
  3. parameter [3] AS [VARCHAR] - 'aaaaaeeeeiiiooooouuuuAAAAAEEEEIIIOOOOOUUUUcC',                
  4. parameter [4] AS [VARCHAR] - %Partenon%,                                                    
  5. parameter [5] AS [VARCHAR] - 'áàâãäéèêëíìïóòôõöúùûüÁÀÂÃÄÉÈÊËÍÌÏÓÒÔÕÖÚÙÛÜçÇ',                
  6. parameter [6] AS [VARCHAR] - 'aaaaaeeeeiiiooooouuuuAAAAAEEEEIIIOOOOOUUUUcC',                
  7. parameter [7] AS [VARCHAR] - 'áàâãäéèêëíìïóòôõöúùûüÁÀÂÃÄÉÈÊËÍÌÏÓÒÔÕÖÚÙÛÜçÇ',                
  8. parameter [8] AS [VARCHAR] - 'aaaaaeeeeiiiooooouuuuAAAAAEEEEIIIOOOOOUUUUcC',                
  9. parameter [9] AS [VARCHAR] - %Partenon%,                                                    
  10. parameter [10] AS [VARCHAR] - 'áàâãäéèêëíìïóòôõöúùûüÁÀÂÃÄÉÈÊËÍÌÏÓÒÔÕÖÚÙÛÜçÇ',
  11. parameter [11] AS [VARCHAR] - 'aaaaaeeeeiiiooooouuuuAAAAAEEEEIIIOOOOOUUUUcC',                
  12. parameter [12] AS [VARCHAR] - 'áàâãäéèêëíìïóòôõöúùûüÁÀÂÃÄÉÈÊËÍÌÏÓÒÔÕÖÚÙÛÜçÇ',                
  13. parameter [13] AS [VARCHAR] - 'aaaaaeeeeiiiooooouuuuAAAAAEEEEIIIOOOOOUUUUcC',                
  14. parameter [14] AS [VARCHAR] - %Partenon%,                                                    
  15. parameter [15] AS [VARCHAR] - 'áàâãäéèêëíìïóòôõöúùûüÁÀÂÃÄÉÈÊËÍÌÏÓÒÔÕÖÚÙÛÜçÇ',                
  16. parameter [16] AS [VARCHAR] - 'aaaaaeeeeiiiooooouuuuAAAAAEEEEIIIOOOOOUUUUcC',                
  17. parameter [17] AS [VARCHAR] - 'áàâãäéèêëíìïóòôõöúùûüÁÀÂÃÄÉÈÊËÍÌÏÓÒÔÕÖÚÙÛÜçÇ',                
  18. parameter [18] AS [VARCHAR] - 'aaaaaeeeeiiiooooouuuuAAAAAEEEEIIIOOOOOUUUUcC',                
  19. parameter [19] AS [VARCHAR] - %Partenon%,                                                    
  20. parameter [20] AS [VARCHAR] - 'áàâãäéèêëíìïóòôõöúùûüÁÀÂÃÄÉÈÊËÍÌÏÓÒÔÕÖÚÙÛÜçÇ',                
  21. parameter [21] AS [VARCHAR] - 'aaaaaeeeeiiiooooouuuuAAAAAEEEEIIIOOOOOUUUUcC',                
  22. parameter [22] AS [VARCHAR] - 'áàâãäéèêëíìïóòôõöúùûüÁÀÂÃÄÉÈÊËÍÌÏÓÒÔÕÖÚÙÛÜçÇ',                
  23. parameter [23] AS [VARCHAR] - 'aaaaaeeeeiiiooooouuuuAAAAAEEEEIIIOOOOOUUUUcC',                
  24. parameter [24] AS [VARCHAR] - %Partenon%,                                                    
  25. parameter [25] AS [VARCHAR] - 'áàâãäéèêëíìïóòôõöúùûüÁÀÂÃÄÉÈÊËÍÌÏÓÒÔÕÖÚÙÛÜçÇ',                
  26. parameter [26] AS [VARCHAR] - 'aaaaaeeeeiiiooooouuuuAAAAAEEEEIIIOOOOOUUUUcC',                
  27. parameter [27] AS [VARCHAR] - 'áàâãäéèêëíìïóòôõöúùûüÁÀÂÃÄÉÈÊËÍÌÏÓÒÔÕÖÚÙÛÜçÇ',                
  28. parameter [28] AS [VARCHAR] - 'aaaaaeeeeiiiooooouuuuAAAAAEEEEIIIOOOOOUUUUcC',                
  29. parameter [29] AS [VARCHAR] - %Partenon%,                                                    
  30. parameter [30] AS [VARCHAR] - 'áàâãäéèêëíìïóòôõöúùûüÁÀÂÃÄÉÈÊËÍÌÏÓÒÔÕÖÚÙÛÜçÇ',                
  31. parameter [31] AS [VARCHAR] - 'aaaaaeeeeiiiooooouuuuAAAAAEEEEIIIOOOOOUUUUcC',

Quiero que el método me de como resultado la consulta del primer String con las ? cambiadas por su valor
Osea la primera ? por 2
la segunda por 'áàâãäéèêëíìïóòôõöúùûüÁÀÂÃÄÉÈÊËÍÌÏÓÒÔÕÖÚÙÛÜçÇ''
Etc...
Me podéis dar ideas.
Gracias.