Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Query Hibernate

    Ciao a tutti ragazzi mi sono assentato per un po' ma non preoccupatevi che non è facile liberarsi di una zecca come me.

    Sto cercando di fare una query con hibernate che mi permetta di fare delle SELECT da una tabella.

    Il DB è MySql.

    La tabella si chiama Nikkei composta dalle seguenti colonne MI, MA, OPE, CLOS, DAT.

    La colonna DAT è una PK.

    Ne ho provate diverse e tutte non funzionano.

    Vi posto l'ultima:
    codice:
                   em.getTransaction().begin();
                    
                    Collection emps = em.createNativeQuery("SELECT MI FROM Nikkei").getResultList();
                    for (Iterator i = emps.iterator(); i.hasNext();) {
                    Nikkei e = (Nikkei) i.next();
                    System.out.println("Dati: "+ e.toString());
    Che mi da questo messaggio di errore:

    Exception in thread "main" java.lang.ClassCastException: java.lang.Double cannot be cast to Entity.Nikkei
    at stockmanager.Select.Selec(Select.java:26)
    at stockmanager.MainStockManager.main(MainStockManage r.java:29)
    Java Result: 1

    La cosa che mi fa cirare le scatole è che questa funziona benissimo ma ovviamente non fa quello che voglio:

    codice:
                   em.getTransaction().begin();
                    
                    Collection emps = em.createQuery("SELECT e FROM Nikkei e").getResultList();
                    for (Iterator i = emps.iterator(); i.hasNext();) {
                    Nikkei e = (Nikkei) i.next();
                    System.out.println("Dati: "+ e.toString());
    Sicuramente c'è qualcuno più esperto di me (visto che io non lo sono) mi dareste una mano?

    Ciao.

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    129
    prova con

    "select n.MI from Nikkei n"

  3. #3

    Non funge!!

    Grazie mille per aver provato ad aiutarmi innanzitutto.

    Purtroppo ho già provato e non funziona.

    Stesso errore:

    Exception in thread "main" java.lang.ClassCastException: java.lang.Double cannot be cast to Entity.Nikkei
    at stockmanager.Select.Selec(Select.java:26)
    at stockmanager.MainStockManager.main(MainStockManage r.java:29)
    Java Result: 1

    Grazie lo stesso,

    Ciao.

  4. #4
    Perchè non posti i tipi delle colonne tella tabella del DB ed il file di mapping di Hibernate?
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  5. #5

    COLONNE DB E FILE MAPPING

    Ciao, grazie ok proviamo...

    questa è la persistence:
    codice:
    <?xml version="1.0" encoding="UTF-8"?>
    <persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persisten...stence_2_0.xsd">
      <persistence-unit name="StockManagerPU" transaction-type="RESOURCE_LOCAL">
        <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
        <class>Entity.Shanghai</class>
        <class>Entity.Nikkei</class>
        <class>Entity.Seoul</class>
        <class>Entity.Hang_Seng</class>
        <properties>
          <property name="javax.persistence.jdbc.url" value="jdbc:mysql://127.0.0.1:3306/mydb"/>
          <property name="javax.persistence.jdbc.password" value=""/>
          <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
          <property name="javax.persistence.jdbc.user" value="root"/>
          <property name="eclipselink.ddl-generation" value="create-tables"/>
        </properties>
      </persistence-unit>
    </persistence>
    le colonne del db sono:

    OPE double; CLOS double; MI double; MA double; VOLU double; DAT varchar(15);

    le entity sono così:
    codice:
    package Entity;
    import javax.persistence.*;
    
    /**
     *
     * @author DARIO
     */
    
    @Entity
    public class Nikkei {
        @Id
        private String DAT;
        private Double OPE;
        private Double CLOS;
        private Double MI;
        private Double MA;
        private Double VOLU;
    
        /**
         * @return the DAT
         */
        public String getDAT() {
            return DAT;
        }
    
        /**
         * @param DAT the DAT to set
         */
        public void setDAT(String DAT) {
            this.DAT = DAT;
        }
    
        /**
         * @return the OPE
         */
        public Double getOPE() {
            return OPE;
        }
    
        /**
         * @param OPE the OPE to set
         */
        public void setOPE(Double OPE) {
            this.OPE = OPE;
        }
    
        /**
         * @return the CLOS
         */
        public Double getCLOS() {
            return CLOS;
        }
    
        /**
         * @param CLOS the CLOS to set
         */
        public void setCLOS(Double CLOS) {
            this.CLOS = CLOS;
        }
    
        /**
         * @return the MI
         */
        public Double getMI() {
            return MI;
        }
    
        /**
         * @param MI the MI to set
         */
        public void setMI(Double MI) {
            this.MI = MI;
        }
    
        /**
         * @return the MA
         */
        public Double getMA() {
            return MA;
        }
    
        /**
         * @param MA the MA to set
         */
        public void setMA(Double MA) {
            this.MA = MA;
        }
    
        /**
         * @return the VOLU
         */
        public Double getVOLU() {
            return VOLU;
        }
    
        /**
         * @param VOLU the VOLU to set
         */
        public void setVOLU(Double VOLU) {
            this.VOLU = VOLU;
        }
        public String toString() {
        return "Data id: " + getDAT() + " Open: " + getOPE() + " Close: " + getCLOS()+" Mi: " + getMI() +" Ma: " + getMA()+" Volum: " + getVOLU();
    
       }
    
    }
    Grazie Mille per la pazienza ciao!!!

  6. #6
    Dovrebbero esserci anche dei file di mapping che associano le entity alle tabelle e gli attributi alle colonne.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  7. #7

    File mapping....

    In realtà per lavorare sul database uso solo questo:

    codice:
    public void Selec(){
                    EntityManagerFactory ef= persistence.createEntityManagerFactory("StockManagerPU");
                    EntityManager em = ef.createEntityManager();
    
                   em.getTransaction().begin();
    
                    Collection emps = em.createQuery("select n.MI from Nikkei n").getResultList();
                    for (Iterator i = emps.iterator(); i.hasNext();) {
                    Nikkei e = (Nikkei) i.next();
                    System.out.println("Dati: "+ e.toString());
    }
    non ho usato il file mapping...

    Incomincio a pensare di avere fatto un pastrocchio...

    Conosci qualche tutorial che spieghi bene l'uso di Hibernate?

    ciao.

  8. #8
    Il problema è che tu non stai utilizzando hibernate, ma le Java Persistence API.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.