Hibernate: como regresar un sólo valor que sea un tipo primitivo?

Base de datos, Java, Oracle, Programación 21 de August del 2009

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5.00 out of 5)
Loading ... Loading ...

Es un poco básico pero la verdad es que es de gran ayuda, ya que si quieres regresar un date, string, long, etc. (datso primitivos) pues evitas mapear el resultado dentro de un objeto.

bueno, al grano!!! vamos a obtener el nombre del autor dependiendo del su ID

tautor.hbm.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
 
<hibernate-mapping>
<sql-query name="searchAutor">
	    <return-scalar  column="name" type="java.lang.String" />
    	<!-- La columna que se quiera regresar y su tipo de dato-->
    	 SELECT 
    	 	name  
    	 FROM 
    	 	tautor 
 
	  WHERE
		idautor = :id
    </sql-query>
</hibernate-mapping>

ya que tenemos el mapeo… vamos a la implementación

HTautorDao.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public class HTautorDao extends AbstractDAO implements TautorDao
{
public String getNameAutor(Long id)
    {
        try
        {
 
            String[] paramNames =
                { "id" };
 
            Object[] values =
                { id };
          // nos regresa el tipo primitivo que queramos o con metodos que tiene DataAccessUtils
            return (String) DataAccessUtils.uniqueResult((getHibernateTemplate()
                    .findByNamedQueryAndNamedParam("searchAutor", paramNames, values)));
 
        }
        catch (Exception e)
        {
            log.fatal(e);
            return null;
        }
 
    }

así pueden tener las consultas utilizando hibernate… y regresar tipos primitivos como los antes mencionados..

NOTA: siempre y cuando sea sólo valor como resultado, por que de lo contrario estamos ablando de otra forma de hacerlo.

java doc: http://static.springsource.org/spring/docs/2.0.x/api/org/springframework/dao/support/DataAccessUtils.html#uniqueResult

MAVEN: Wagon protocol ‘ftp’ doesn’t support directory copying

Java, Maven, Programación 5 de August del 2009

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5.00 out of 5)
Loading ... Loading ...

No sabía por que me marcaba error con na versión más nueva, y púes estaba probando varias versiones,
hasta que navegando por Internet encontré la solución…

Error que me marcaba MAVEN:

1
[exec] [INFO] Wagon protocol 'ftp' doesn't support directory copying

y sólo hay que agregar la siguiente instrucción en el build del POM

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<build>
.
.
.
  <extensions>
       <extension>
          <groupId>org.apache.maven.wagon</groupId>
          <artifactId>wagon-ftp</artifactId>
          <version>1.0-beta-3</version>
       </extension>
   </extensions>
 
.
.
.
</build>

y así ya no marca el anterior error…

Ejecutar un PL en Oracle desde Java y que muestre una posible exception para que la aplicación no continué…

Java, Oracle, Programación 2 de June del 2009

1 Star2 Stars3 Stars4 Stars5 Stars (2 votes, average: 4.50 out of 5)
Loading ... Loading ...

Si quieres manejar la excepción de un posible error y que la maneje Java.. solo hay que agregar la siguiente linea “RAISE_APPLICATION_ERROR” y además Oracle nos permite personal izar nuestros errores…

CREATE OR REPLACE PACKAGE BODY delete_pkg
AS
   PROCEDURE delete_table (vbook NUMBER)
   IS
     .
     .
     .
   BEGIN
     .
     .
     .
     .
     COMMIT;
   EXCEPTION
      WHEN OTHERS
      THEN
         DBMS_OUTPUT.put_line (SQLERR);
	 RAISE_APPLICATION_ERROR(-20001,SQLERR);
   END delete_table;
END delete_pkg;

leer una Key de un archivo .properties desde un Action…

Java, Struts2 27 de May del 2009

1 Star2 Stars3 Stars4 Stars5 Stars (3 votes, average: 3.67 out of 5)
Loading ... Loading ...

Pues es algo super básico pero nunca esta de más… aunque hay muchas formas de hacerlos… aquí les poco un opción…
File Application.properties

1
2
login.username=Nombre
login.password=Contraseña

y desde el Action

1
2
 MessageResources messageResources = getResources(request);
 String username = messageResources.getMessage("login.username");

y listo…

Utilizar archivos JSPF dentro de un proyecto en struts…

Java, Programación, Struts2 13 de May del 2009

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 3.00 out of 5)
Loading ... Loading ...

No había trabajado don este tipo de archivos, pero realmente tiene la misma estructura que un archivo Jsp… pero no diferencia ya que los archivos JSPF utilizan los mismos Tags y además de que son muy utilizado para para organizar mejor las partes en que esta separado nuestro sistema , por ejemplo: header, body y footer.
aquí un ejemplo:

<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%>
<div id="footer">
</div>

Problemas con búsquedas dinámicas en struts2… utilizando “chain” y enviando los resultados al mismo Action donde se encuentra el formulario (filtro de búsqueda en la Jsp)…

Java, Programación, Struts2 27 de April del 2009

1 Star2 Stars3 Stars4 Stars5 Stars (2 votes, average: 3.00 out of 5)
Loading ... Loading ...

Así es, teníamos un Action para mostrar el formulario de búsqueda y al dar Submit.. se enviaba a otro Action en donde obtenía los datos y se formaba el list y este mostraba los datos en la misma Jsp… en conclución… No podíamos meter el resultado en el tiles (para agregar el header y footer) ya que cuando lo hacíamos se perdían los datos… y la Jsp se mostraba sin header y footer… antes estaba así:

1
2
3
4
5
6
7
8
9
<action name="searchBooks" class="com.mycompany.SearchBooksAction" method="search">
         <result type="chain">listaBooks.action</result>
         <result name="chain">/error.jsp</result>
</action>
 
<action name="listaBooks" class="com.mycompany.SearchBooksAction"  method="list"> 
 
        <result >searchbook.jsp</result>
</action>

Donde searchbook.jsp lo utilizábamos para mostrar el formulario… en fin… un compañero lo resolvió de la siguiente forma:

En el web.xml hay que agregar:

1
2
3
4
<filter>
      <filter-name>struts-cleanup</filter-name>
      <filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class>
</filter>

Y listo!!! con esto ya se puede direccionar la Jsp al tiles sin que si pierda el resultado y se pueda manterner en session.

1
2
3
4
5
6
7
8
9
<action name="searchBooks" class="com.mycompany.SearchBooksAction" method="search">
         <result type="chain">listaBooks.action</result>
         <result name="chain">/error.jsp</result>
</action>
 
<action name="listaBooks" class="com.mycompany.SearchBooksAction"  method="list"> 
 
        <result type="tiles">searchbook.jsp</result>
</action>

Como incluir recursos a un Jar ó en un Web utilizando maven??…

Java, Maven, Programación 16 de April del 2009

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

Si quieres incluir recursos que no sean de configuración (como ustedes sabes, todo los recursos de configuración, properties, etc etc deben de estar en el path sources del proyecto src/main/resources)

Y si quisiéramos agregar otros archivos como excel, docs, txt, jpg y que se empaqueten dentro del proyecto los colocamos dentro del Path sources (antes mencionado) o de una manera un poco más organizada colocar la carpeta de los archivos a la altura del proyecto como por ejemplo:

-Proyecto1
|-src
 
      ¡---main
 
               ¡--- resources
 
                        ¡--- *.xml
 
                        ¡--- *.properties
 
                ¡--- java
 
                        ¡--- *java
 
|-files
 
      ¡--- *.txt
 
      ¡--- *.doc

Y agregar en el pom.xml del protecyo

1
2
3
4
5
6
7
8
9
10
11
12
13
<project>
  ...
  <build>
    <resource>
        <directory>Nombre de la ruta del proyecto ( esta ruta es relativa... al classpath dende se encuentra el pom.xml)</directory>
        <includes>
              <include>**/*</include>
              <includes>
        </resource>
    <resource>
  <build>
...
<project>

Internal error in the plugin manager executing goal ‘org.dstovall:onejar-maven-plugin:1.4.0:one-jar’: Unable to find the mojo ‘org.dstovall:onejar-maven-plugin:1.4.0:one-jar’ in the plugin ‘org.dstovall:onejar-maven-plugin’ org/dstovall/OneJarMojo (Unsupported major.minor version 49.0)

Java, Maven, Programación 9 de April del 2009

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 3.00 out of 5)
Loading ... Loading ...

Me estuve peleando un buen rato para saber por que me daba este error (es que estaba tratando de hacer un One-Jar de un proyecto maven)… y bueno… púes el problema era que estaba ejecutando con Java 1.4_11, así que solo hay que ejecutarlo con una versión superior… osea la 5 o 6. Cuando cambie de versión todo se ejecuto correctamente:

1
mvn package

plug-in de eclipse para manejo de proyectos con Maven…

Eclipse, Java, Programación, Software 2 de April del 2009

1 Star2 Stars3 Stars4 Stars5 Stars (2 votes, average: 3.50 out of 5)
Loading ... Loading ...

Estaba buscando un plug-in para eclipse para el manejo de proyectos Maven… y me encontré esta opción… se llama q4e… pero tuve problemas para instalarlo ya que necesita de Java 5 y eclipse 3.3… y púes yo estoy manejando Java 1.4 y eclipse 3.4.1… así que sólo se puede instalar algunas opciones… como las que estan seleccionadas en la imagen….

Sólo hay que pegar el siguiente link:

http://q4e.googlecode.com/svn/trunk/updatesite/

Ahora va bien… sólo que hay que leer bien como funciona…

eclipse qe4

eclipse qe4

sobre escribir el mensaje de error que muestra por default struts2… Invalid field value for field “{0}” en struts2

Java, Programación, Struts2 25 de March del 2009

1 Star2 Stars3 Stars4 Stars5 Stars (3 votes, average: 3.67 out of 5)
Loading ... Loading ...

Para poder sobre escribir el mensaje de error que se muestra por default por xwork.default.invalid.fieldvalue (Invalid field value for field “nombre_campo”) por no hacer el manejo de la validación del campo o por otras desconocidas jajajaja causas, se puede realizar de dos formas:

1.- Utilizar el validador que viene por default en Struts2 nombre-validation.xml (si ya fallo este intento… pasar al paso 3)
2.- Realizar la validación mediante Java. (Sí también ha fallado este intento)
3.- Declarar esta propiedad en los archivos properties que se estén utilizando (invalid.fieldvalue.NOMBRE_CAMPO)

Un ejemplo:
En la jsp:

1
2
3
4
5
6
7
8
  <s:date
     name="date"
     format="dd/mm/aaaa"
     id="date.formatted" />
  <s:textfield name="date" 
     label="Date"
     required="true"
     value="%{date.formatted}" />

Si el campo no es correcto podría mostrar el siguiente mensaje de error:

1
  Invalid field value for field "date".

Así que podemos cambiar el mensaje declarando esa propiedad en los archivos.properties:

1
invalid.fieldvalue.NOMBRE_CAMPO=Fecha invalida

con lo cual, para el ejemplo anterior quedaría así:

1
invalid.fieldvalue.date=Fecha inválida

y listo… el texto es cambiado!!!!!

http://www.wikio.es BlogESfera - Directorio de Blogs Hispanos blogarama - the blog directory Mi Ping en TotalPing.com
Internet blogs Programming Blogs - Blog Catalog Blog Directory Internet blogs Buzzear (ES) Publicidad por tu blog con Boosterblog directorio de blogs
Agregar Web - Directorio de webs Directorio webs Directorio Web
Anuncios Gratis Blog Directory Technology Blogs - Blog Rankings