Torna indietro   Hardware Upgrade Forum > Software > Programmazione

HONOR CHOICE Projector Air Pro: piccolo, portatile e con Netflix
HONOR CHOICE Projector Air Pro: piccolo, portatile e con Netflix
Un proiettore economico, che fa della portabilità e immediatezza i suoi punti di forza. Adatto per una camera da letto o per la casa vacanze, è basato su sistema proprietario Linux ma offre piena compatibilità ufficiale a Netflix
ASUS ProArt GoPro Edition è il notebook compatto per chi crea
ASUS ProArt GoPro Edition è il notebook compatto per chi crea
Un notebook sviluppato in collaborazione con GoPro ma che risponde al meglio alle necessità di tutti coloro che creano contenuti video: robustezza, design, potenza di calcolo e funzionalità si abbinano al meglio tra di loro, pur se a prezzo di un costo elevato per via della tanta memoria onboard
Fable e Sol a confronto: due cartoni animati creati su un PC con RTX 3090
Fable e Sol a confronto: due cartoni animati creati su un PC con RTX 3090
Ho affidato ai due modelli lo stesso mestiere ma non lo stesso identico prompt: trasformare una storia illustrata in un video usando una RTX 3090 e modelli locali. Ne sono usciti due film, due applicazioni e due idee opposte di efficienza. Fucina, progettata con Fable 5, colpisce di più nei primi secondi. Storyboard Studio, costruito con ChatGPT/Codex, regge meglio sulla distanza e vince il confronto complessivo, ma di stretta misura
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 30-05-2009, 20:09   #1
carter100
Senior Member
 
Iscritto dal: Jul 2007
Messaggi: 1159
[Java] Hibernate errore dopo inserimento database.

Ciao, sto vedendomi hibernate e son agli inizi. Ho visto come leggere dati da un db, son passato all'inserimento e ho trovato problemi. Vi posto i file xml e le classi:
File Dipartimento.java (classe da inserire nel database)
Codice:
package it.demo.dominio;
public class Dipartimento {
      private int id;
      private String nome;
      private String sede;
      public Dipartimento() {
      }
      public Dipartimento(String nome,String sede) {
            this.nome=nome;
            this.sede=sede;
      }
      public int getId() {
            return id;
      }
      private void setId(int id) {
            this.id = id;
      }
      public String getNome() {
            return nome;
      }
      public void setNome(String nome) {
            this.nome = nome;
      }
      public String getSede() {
            return sede;
      }
      public void setSede(String sede) {
            this.sede = sede;
      }
}
File Main.Java (per fare l'inserimento)
Codice:
package it.demo.dominio;

import java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.tutorial.util.HibernateUtil;

public class Main
{
      /**Crea un Dipartimento dati nome e sede e lo salva nel database
      */
      public static Dipartimento creaDipartimento(String nome,String sede) {
            Dipartimento d=new Dipartimento(nome,sede);
            Session session = HibernateUtil.getSessionFactory().openSession();
            Transaction tx = null;
            try {
                  tx = session.beginTransaction();
    
    //Chiedo al middleware di salvare questo oggetto nel database
    session.save(d);
    
    //fine della transazione: salviamo tramite commit()
    session.getTransaction().commit();
            }
            catch (HibernateException he) {
                  if (tx!=null)
                        tx.rollback();
                  throw he;
            }
            finally {
                  session.close();
            }
            return d;
      }
      
      public static void main (String [] args)
      {
          Main.creaDipartimento("nome324", "sede121");
      }
}
Posto anche i 2 file xml:
Dipartimento.hbm.xml
Codice:
<?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 schema="miodatabase" package="it.demo.dominio">
      <class name="Dipartimento" table="dipartimento" lazy="false">
            <id name="id" column="id_dipartimento">
                  <generator class="native"/>
            </id>
            <property name="nome"/>
            <property name="sede"/>
      </class>
</hibernate-mapping>
hibernate.cfg.xml
Codice:
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
      <session-factory>
            <!-- Database connection settings -->
            <property
name="connection.driver_class">com.mysql.jdbc.Driver</property>
            <property name="connection.url">jdbc:mysql://127.0.0.1:3306/miodatabase</property>
            <property name="connection.username">root</property>
            <property name="connection.password">pass</property>
            <!-- JDBC connection pool (use the built-in) -->
            <property name="connection.pool_size">2</property>
            <!-- SQL dialect -->
            <property
name="dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
            <!-- Enable Hibernate's automatic session context management -->
            <property name="current_session_context_class">thread</property>
            <!-- Disable the second-level cache -->
            <property
name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
            <!-- Echo all executed SQL to stdout -->
            <property name="show_sql">false</property>
            <mapping resource="it/demo/dominio/Dipartimento.hbm.xml"/>
      </session-factory>
</hibernate-configuration>
Eseguo e ho la tupla inserita nel db. Ma ho anche 1 errore:
Exception in thread "main" org.hibernate.HibernateException: The database returned no natively generated identity value
Java result 1.
Il rigo incriminato è session.save(d) in Main,java.

Mi sapete dare 1 suggerimento per capire da che dipende?Sto uscendo pazzo, grazie
carter100 è offline   Rispondi citando il messaggio o parte di esso
Old 30-05-2009, 20:18   #2
carter100
Senior Member
 
Iscritto dal: Jul 2007
Messaggi: 1159
Ok, come non detto, grazie, ho risolto. Se dovesse servire a qualcuno, è bastato settare la PK del database (id_dipartimento) come autoincrement, ora non dà alcun errore.
carter100 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


HONOR CHOICE Projector Air Pro: piccolo, portatile e con Netflix HONOR CHOICE Projector Air Pro: piccolo, portati...
ASUS ProArt GoPro Edition è il notebook compatto per chi crea ASUS ProArt GoPro Edition è il notebook c...
Fable e Sol a confronto: due cartoni animati creati su un PC con RTX 3090 Fable e Sol a confronto: due cartoni animati cre...
Il tablet rugged leggero e sottile: Lenovo ThinkTab X11 offre resistenza, doppia USB-C e batteria rimovibile Il tablet rugged leggero e sottile: Lenovo Think...
AMD Advancing AI 2026: l'hardware AMD per le elaborazioni IA del futuro, tra GPU, CPU e robot AMD Advancing AI 2026: l'hardware AMD per le ela...
Rocket Factory Augsburg ha riscontrato u...
Blue Origin sta ricostruendo e modifican...
BMW taglierà 8.000 posti di lavor...
7.600 annunci di nudify app su Meta, tut...
Visa ne lascia a casa 2600: intelligenza...
Batterie sostituibili? Per Logitech, gli...
IBM: l'IA riduce i costi delle violazion...
Logitech G Cloud bocciata dal pubblico, ...
NVIDIA RTX Spark, provato un prototipo c...
Sony e Fujifilm: evacuate le fabbriche d...
Starship: Ship 40 continua a galleggiare...
UMC investe su Singapore e Tainan per ri...
Steam Machine, novità sulle code:...
Anche Foxconn abbandona VMware e sceglie...
Windows 11 migliora l'accessibilit&agrav...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 01:50.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v