Estaba leyendo la Hibernación HQL tutorial y se encontró que HQL no admite INSERT INTO..VALUES.. pero INSERT INTO..SELECT.. es decir, HQL sólo movible de la ayuda de otra tabla.

Supongamos que quiero insertar valores en una tabla y que los datos no de cualquier otra tabla, es decir, los valores no se encuentran en ninguna otra tabla.Entonces, ¿cómo puedo hacer que en HQL?

También, quisiera saber el racional detrás de tales restricciones en HQL?

No entiendo que votada abajo esta pregunta? Quien lo hizo, por favor hágamelo saber la razón por la que puedo cuidar en el futuro
yo no soy downvoter, pero creo que debes leer esto: stackoverflow.com/faq#dontask

OriginalEl autor Anand | 2012-10-05

3 Comentarios

  1. 7

    Usted no necesita utilizar hql para insertar si los datos de otra tabla.

    Simplemente obtener una referencia a su entidad, obtener una bodega de una sesión de Hibernate, y llama a guardar().

    Según http://docs.jboss.org/hibernate/orm/4.0/devguide/en-US/html/ch04.html#d0e2116

    Pseudo-sintaxis para INSERTAR declaraciones

    INSERTAR EN Nombreentidad properties_list select_statement

    Sólo INSERT … SELECT … forma es compatible. Usted puede especificar los valores a insertar.

    Me estoy preguntando ¿cómo puedo insertar datos en una tabla en HQL. Nota : los Datos para ser insertado no es de otra tabla.
    He añadido la documentación de hibernate para insertar.
    gracias por dejar claro

    OriginalEl autor swemon

  2. 3

    Hibernate es un framework ORM (Mapeo Objeto-Relacional).

    Su trabajo es que usted da a los objetos (Entidades) que administra el almacenamiento (a través de Session.save(), si mal no recuerdo).

    Por lo tanto, no utilice el HQL para insertar nuevos registros, pero el uso de los métodos ORM.

    Y (esto es una suposición) por otro lado, desde la carga de las entidades de una tabla, una copia de los mismos a otras entidades y almacenar en ellos uno por uno es lento, HQL proporciona un acceso directo a SQL en la base de datos sólo para que la operación específica para los efectos de la performance.

    Sé utilizar sesión.guardar() puedo hacer lo mismo pero solo quiero saber ¿cómo puedo insertar los datos(no de cualquier otra tabla) a una tabla utilizando HQL.
    El proveedor del marco dice que usted no puede hacer eso. Usted sabe que una alternativa, y la razón por la que se da. Sin embargo, usted acaba de decir que quiere hacerlo de esa manera… al menos, tenemos la suerte de que usted es un programador y no un piloto de avión. Si solo desea utilizar SQL, uso de SQL y no de Hibernación.
    Yo nunca dije que quería hacerlo de esta manera, solo estoy preguntando si podemos hacerlo o no..espero que entiendas la diferencia..
    La documentación (y su post) dice claramente que no se puede en HQL. El uso de un SQLQuery, o un SQL directo.
    ok…….gracias

    OriginalEl autor SJuan76

  3. 1

    Puede utilizar session.save(object) para insertar datos en las tablas.

    OriginalEl autor Ponmudi VN

Dejar respuesta

Please enter your comment!
Please enter your name here