Buscar este blog

viernes, 29 de junio de 2012

Hibernate: error many-to-many

[hibernatetool] An exception occurred while running exporter #2:hbm2java (Generates a set of .java files)
[hibernatetool] To get the full stack trace run ant with -verbose
[hibernatetool] org.hibernate.MappingException: An association from the table TRACK_ARTISTS does not specify the referenced entity


BUILD FAILED
/media/SWAP/ProyectoH/build.xml:67: org.hibernate.MappingException: An association from the table TRACK_ARTISTS does not specify the referenced entity
    at org.hibernate.cfg.Configuration.secondPassCompileForeignKeys(Configuration.java:1241)
    at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1170)

 Este error es causado porque el nombre de la clase esta mal. En el achirvo aparece Artist y debería se com.oreilly.hh.

 
<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE hibernate-mapping PUBLIC
  "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
  "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>

<class name="Artist">
    <meta attribute="class-description">
        Represent a artist who is associed with a track or album.
        @autor Victor Aguilar
    </meta>
    
    <id name="Id" type="int" column="ARTIST_ID">
        <meta attribute="scope-set">protected</meta>
        <generator class="native"/>
    </id>
    
    <property name="name" type="string" column="NAME">
        <meta attribute="use-in-tostring">true</meta>
    </property>
    
    <set name="track" table="TRACK_ARTISTS" inverse="true">
        <key column="ARTIST_ID"/>
        <many-to-many entity-name="com.oreilly.hh.Track" column="TRACK_ID"/>
    </set>
</class>


  

</hibernate-mapping>

domingo, 24 de junio de 2012

Netbeans: de hbm a java con Ant

Introduccion:

Esta entrada muestra como auto-generar codigo java a partir de documentos de mapeo hbm de Hibernate.

Esto se hara desde el interior de Netbeans, sin embargo funciona unicamente utilizando Ant, ya que modificamos el build.xml y usamos las los .jar  de Hibernate e Hibernate Tool (en particular hbm2java) que son idependientes a NetBeans.


From hbm to java

Una vez con un proyecto creado en NetBeans, entramos en la pestaña Files y abrimos el archivo build.xml (el mismo que en Ant) y agreamos el siguiente codigo justo despues de los comentarios, pero antes de la etiqueta </project>:

<property name="src" value="src"/>
    <property name="hibernate_path" value="/home/lubuntu/.netbeans-7.1.1/java/modules/ext/"/>
    <property name="apache_path" value="/home/lubuntu/.netbeans-7.1.1/ide/modules/"/>
    
    <path id="classes-path">
        <fileset dir="${hibernate_path}" includes="**/*.jar"/>
        <fileset dir="${apache_path}" includes="**/*.jar"/>
    </path>
    
    <taskdef name="htool"
            classname="org.hibernate.tool.ant.HibernateToolTask"
            classpathref="classes-path"/>
     
     <target name="gencode">
         <htool destdir="${src}">
             <configuration
                 configurationfile="${src}/hibernate.cfg.xml">
                <fileset dir="${src}/dvdshop" includes="*.hbm.xml"/>
              </configuration>
             <hbm2java jdk5="true"/>
         </htool>
     </target>

El código anterior solamente agrega una nueva tarea al script de Ant y lo unico que tienes que modificar es el atributo value de las etiquetas <property>'s con la direccion correcta de donde se encuentran los .jar de Hibernate y los de apache. Estos utilimos por lo general biene dentro del bundle de Hibernate.

Con estas modificaciones solo hay que darle click secundario al archivo build.xml, elegir Run Target -> Other Targets -> gencode. Entonces nos generara un los archivos .java.

Bibliografia

[1] Dave Minter, Jeff Linwood, Beginning Hibernate: From Novice to Profesional, Appress, Agosto 2006.
[2] Jame Helliott, Hibernate: A Developer's Notebook, O'reilly 2004.
[3] Hibernate Reference 24 de Junio del 2012.
[4] Apache Commons 24 de Junio del 2012.

miércoles, 13 de junio de 2012

Insertar codigo coloreado en blogger

Esta pagina http://tohtml.com/xml/ te genera codigo HTML para insertarlo en blogger.com. Una caracteristica interesante es que te detecta errores de sintaxis.

jueves, 7 de junio de 2012

Insertar imagenes jpg en LaTeX


Para insertar una imagen en LaTeX utilizamos el siguiente codigo.


\documentclass{article}
\usepackage{graphicx}

\begin{document}

\begin{figure}[h]
        \includegraphics[
             width = 10cm,
             bb = 0 0 1280 736
        ]{dead.jpg}
\end{figure}

\end{document}


La unica linea que no es auto-documentable y por lo cual necesita una explicación es la linea en negritas. La opción bb (BoundingBox) es imprescindible para insertar la imagen, ya que si la eliminamos el compilador (yo uso texlive en Lubuntu) nos arrojara el siguente error:


! LaTeX Error: Cannot determine size of graphic in dead.jpg (no BoundingBox).


Los dos primeros numeros (los dos ceros) indican la posición de la esquina inferior izquierda. Mientras que los otros dos indican la posicion de la esquina superior derecha.  Exactamente como funciona esto no lo se, tendre que búscarlo en un libro de LaTeX y no en internet. Pero lo que si se, es que si ponemos las dimenciones de la imagen (ancho por alto) como la esquina superir derecha tendremos una imagne del acho especificado en width.

También es importante que el nombre del archivo no tenga espacios en blanco de lo contrario el compilador no encontrara la imagen. Cabe mencionar que esta puede estar en otro directorio. Si es así se debe especificar la ruta absoluta o relativa como en HTML o cualquier otro lenguaje.





martes, 22 de mayo de 2012

Layout incorrecto en Lubuntu 12.04

Al iniciar Lubuntu 12.04 en modo live seleccionando como lenguaje Español y distribucion del teclado Latinamericano (F3) este se queda en distribucion inglesa.
Para corregirlo abrimos una terminal (Acessorios->LXTerminal) y escribimos:

setxkbmap -model pc103 -layout latam


Y sin necesidad de reiniciar el teclado abra cambiado a la distribucion latinamericana.

lunes, 16 de enero de 2012

El pobre sapo

Una vez el rey de la selva hizo una reunión con todos los animales para nombrar a su sucesor. "Debe ser alguien sabio y prudente", anuncio. "Croac-Croac", dijo la rana pegando saltos de alegría, "esa soy yo". El rey hizo como que no había oido nada y prosiguio. "Ha de tener autoridad y ser respetada por todos", "Croac-Croac, esa soy yo", insisto la vanidosa rana. El león sacudió su melena antes de continuar: "Deberá saber escuchar a unos y otros antes de tomar una decisión importante". "Croac-Croac", volvió a interrumpir la rana, "esa soy yo".

El rey de la selva, que ya estaba hasta los bigotes de tanta interrupción, dijo con gesto fiero: "Cualquiera de ustedes, si reúne estas condiciones, pode ser mi sucesor". La rana iba a lanzar su impertinente "croac-croac", pero esta vez el rey se adelanto: "¡Cualquiera, menos un animal que esta aquí, entre nosotros, que pega saltos, tiene los ojos saltones y croa! ¡Ese animal nunca podrá, bajo ningún concepto, sucederme! La rana miro a un lado y a otro antes de echarse a reír, dio una voltereta, y ante el asombro de todos los presentes, exclamo: "¡Que mala suerte tienes amigo sapo!".

Carlos Puerto - La mirada

domingo, 23 de octubre de 2011

usb-creator de Ubuntu 11.11 no permite crear archivo de persistencia

Adquiri un disco duro portable de 500GB de la marca AData modelo SH93 con un precio de $860 pesos mexicanos.

El motivo de la adquisiscion de este dispositivo de almacenamiento fue poderle instalar un sistema operativo linux ligero para poderlo utilizar en casi cualquier maquina. En particular las de mi Facultad.

El sistema operativo elegido fue Lubuntu (Ubuntu pero con escritorio LXDE), el  cual es muy rapido y se ve bonito. El unico problema que tiene es que no tiene muchas herramientas de configuracion y estas configuraciones  hay que hacerlas a mano. Lo cual, si no quieres o no tienes timpo de investigar, es algo molesto.

Total, cuando cree una particion de 2GB en FAT32 para el sistema operativo con la herramienta usb-creator-gtk (USB Creator) esta no me dejaba crear el archivo de persistencia, el cual puede ser, de por lo menos, 128MB.

Anteriormente, habia creado USB Lives en memorias de 2GB sin problemas, asi que despues de batallar por horas e intentar con varios programas como LiLi y UNetBootin, tome mi DVD de Ubuntu 10.04 Lucid Lynx, lo inicie, e inicie el USB Creator y, ahora si, me dejo crear mi sistema de persistensia.[2]

Despues segui la guia de en pendriverlinux.com[1] para crear un archivo de persistensia de mas de 4GB en otra particion.

Que en Ubuntu 11.11 no pueda hacer esto, es otra de las coas que me desepciona mucho, como el Unity 2d en mi ATI X1200.

[1] http://www.pendrivelinux.com/create-a-larger-than-4gb-casper-partition/
[2] Puede que cuando inicies el Live USB veas el error Unknown keyword in configuration file en cual se soluciona descargando las ultimas versiones de syslinux. Solucion en http://www.khattam.info/solved-syslinux-unknown-keyword-in-configuration-file-2010-09-01.html