Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Tra audio e AI: la ricetta di Qualcomm per l'agentic AI
Tra audio e AI: la ricetta di Qualcomm per l'agentic AI
Snapdragon Soung Gen 2 è la piattaforma Qualcomm per i dispositivi audio sempre più integrati nel mondo dell'intelligenza artificiale: al prorpio interno tanta potenza elaborativa per gestire al meglio le necessità d'uso dell'agentic AI
Qualcomm annuncia la nuova generazione di SoC Snapdragon 8 Elite Gen 6
Qualcomm annuncia la nuova generazione di SoC Snapdragon 8 Elite Gen 6
In occasione del proprio Snapdragon Summit Qualcomm annuncia i due nuovi chip per dispositivi mobile di fascia alta che entreranno nel mercato nel corso del 2027: tanta potenza a disposizione per elaborazioni di intelligenza artificiale sempre più complesse
realme 16 Pro Harry Potter Edition: il nuovo midrange ha uno stemma di Hogwarts che cambia colore al sole!
realme 16 Pro Harry Potter Edition: il nuovo midrange ha uno stemma di Hogwarts che cambia colore al sole!
Hogwarts arriva in fascia media grazie a realme, con una special edition che unisce la Quadra Light-Sensing Color-changing Tech, un baule in stile Hogwarts Express pieno di collezionabili e una scheda tecnica sostanzialmente identica al 16 Pro di partenza: ecco cosa cambia davvero, come si comporta nell'uso quotidiano e quanto vale in base al prezzo di 699,99 euro
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 05-08-2011, 14:30   #1
cecce88
Junior Member
 
Iscritto dal: Jun 2007
Messaggi: 24
[JAVA] Problema con Hibernate che non mi cancella le righe dal DB

Salve raga, ho un piccolo problema con HIBERNATE. Quando il controller viene chiamato per eliminare un Poiext dal DB, la pagina di "SucceView" mi compare correttamente, mentre il Poiext non viene cancellato dal DB.
Forse dovrei usare le transazioni\commit ma non mi parte!!
Attendo un vostro aiuto
Grazie in anticipo
Posto qui i file:

PoiextDaoImpl.java
Codice:
package dao;

import dto.Poiext;
import org.hibernate.Session;


import org.hibernate.SessionFactory;
import org.hibernate.hql.ast.util.SessionFactoryHelper;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/** @author vincenzo */

@Component(value = "poiextDao")
public class PoiextDaoImpl implements PoiextDao {

@Autowired

private SessionFactory sessionFactory;

public void insert(Poiext poi){
    Session session= sessionFactory.getCurrentSession();

    session.saveOrUpdate(poi);
    
}



public void delete(int idpoiext){
    String query = "delete from Poiext where idpoiext = "+idpoiext;
    Session session= sessionFactory.getCurrentSession();
    session.createQuery(query);
    
}

}

Poiext.java
Codice:
package dto;

import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;


/** @author vincenzo */
@Entity
@Table(name = "poiext")

public class Poiext implements Serializable{

@Id
@Column(name = "idpoiext")
private int idpoiext;


@Column(name = "latitudine")
private float latitudine;


@Column(name = "longitudine")
private float longitudine;

@Column(name = "nome")
private String nome;

@Column(name = "info")
private String info;

@Column(name = "img")
private String img;

@Column(name = "indirizzo")
private String indirizzo;

@Column(name = "zona")
private int zona;

    public String getImg() {
        return img;
    }

    public void setImg(String img) {
        this.img = img;
    }

    public String getIndirizzo() {
        return indirizzo;
    }

    public void setIndirizzo(String indirizzo) {
        this.indirizzo = indirizzo;
    }

    public String getInfo() {
        return info;
    }

    public void setInfo(String info) {
        this.info = info;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public int getZona() {
        return zona;
    }

    public void setZona(int zona) {
        this.zona = zona;
    }

    public int getIdpoiext() {
        return idpoiext;
    }

    public void setIdpoiext(int idpoiext) {
        this.idpoiext = idpoiext;
    }

    public float getLatitudine() {
        return latitudine;
    }

    public void setLatitudine(float latitudine) {
        this.latitudine = latitudine;
    }

    public float getLongitudine() {
        return longitudine;
    }

    public void setLongitudine(float longitudine) {
        this.longitudine = longitudine;
    }



}
applicationContext.xml
Codice:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">

<!-- Dice di reperire la configurazione di JDBC nel file /WEB-INF/jdbc.properties -->
<context:annotation-config />




<!-- Bean dedicato a leggere le proprietà di connessione contenute all'interno
del file jdbc.properties -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
       <property name="driverClassName" value="com.mysql.jdbc.Driver" />
        <property name="url" value="jdbc:mysql://localhost:3306/poi" />
        <property name="username" value="root" />
        <property name="password" value="" />
    </bean>

<!-- ADD PERSISTENCE SUPPORT HERE (jpa, hibernate, etc) -->

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<!-- Inietta il dataSource nella sessionFactory -->
<property name="dataSource" ref="dataSource" />
<!-- Inietta le annotatedClasses cioè quali classi sono da usare per le
operazioni di CRUD (Create, Read, Update & Delete) nel db, al
caricamento dell'applicazione hibernate se non trova le tabelle se
le crea automaticamente in base ai dati nella tue classi -->
<property name="annotatedClasses">
<list>
<value>dto.Poiext</value>
</list>
</property>

<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.show_sql">false</prop>
<prop key="hibernate.format_sql">false</prop>
<prop key="hibernate.use_sql_comments">false</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
<prop key="hibernate.cache.use_second_level_cache">false</prop>
<prop key="hibernate.cache.provider_class">net.sf.ehcache.hibernate.EhCacheProvider</prop>
<prop key="hibernate.cache.use_query_cache">false</prop>
</props>
</property>

</bean>

<!-- Enable the configuration of transactional behavior based on annotations -->
<tx:annotation-driven transaction-manager="transactionManager" />
<!-- Transaction manager for a single Hibernate SessionFactory (alternative to JTA) -->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager" p:sessionFactory-ref="sessionFactory" />

<!-- The services are autodetected labeled with the @Service annotation -->
<context:component-scan base-package="service" />

<!-- The daos are autodetected labeled with the @Component annotation -->
<context:component-scan base-package="dao" />

<bean id="poiextService" class="service.PoiextServiceImpl" />

  <bean name="indexController"
          class="org.springframework.web.servlet.mvc.ParameterizableViewController"
          p:viewName="index" />

    <bean id="insertpoiextController" class="controller.InsertpoiextController"
     p:poiService-ref="poiextService"   />

<bean id="deletepoiextController" class="controller.DeletepoiextController"
p:poiService-ref="poiextService" />
</beans>

PoiextServiceImpl.java
Codice:
package service;

import dto.Poiext;
import dao.PoiextDao;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

/** @author vincenzo */
@Service(value = "poiextService")
@Transactional(readOnly = false)
public class PoiextServiceImpl implements PoiextService {

/* Richiama ed inietta un PoiDao */
@Autowired
@Qualifier("poiextDao")
private PoiextDao poiextDao;

/* Implementa il metodo astratto dell'interfaccia PoiService: invoca il
* metodo insert sul dao corrente e gli passa l'oggetto poi ricevuto come
* parametro di input */

public void insertPOI(Poiext poi){
    poiextDao.insert(poi);
}

//public Poiext searchById(int idpoiext){
//    return this.poiextDao.searchById(idpoiext);
//}

public void deletePOI(int idpoiext){
    poiextDao.delete(idpoiext);
}
}
DeletepoiextController.java
Codice:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package controller;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.SimpleFormController;
import service.*;
import dto.*;




public class DeletepoiextController extends SimpleFormController {


private PoiextService poiService;


public void setPoiService(PoiextService poiService){
this.poiService = poiService;
}

public DeletepoiextController() {
    setCommandClass(Poiext.class);
    setCommandName("poi");
    setSuccessView("helloviewdelete");
    setFormView("deletepoiext");
}

@Override
protected ModelAndView onSubmit(Object command) throws Exception {
    Poiext poi = (Poiext) command;
    int idpoiext=poi.getIdpoiext();
    
    this.poiService.deletePOI(idpoiext);

    ModelAndView mv = new ModelAndView(getSuccessView());


    return mv;
}
}

Ultima modifica di cecce88 : 05-08-2011 alle 14:50.
cecce88 è offline   Rispondi citando il messaggio o parte di esso
Old 05-08-2011, 17:04   #2
gokan
Senior Member
 
L'Avatar di gokan
 
Iscritto dal: Apr 2002
Città: Palermo
Messaggi: 4913
Ciao, perchè non provi a fare in maniera simile al metodo di insert, ossia usando la "Session" di hibernate anche per l'eliminazione?
Qualcosa come
Codice:
public void delete(Poiext poi){
    Session session= sessionFactory.getCurrentSession();
    session.delete(poi);
}
__________________
Sun Certified Java Programmer - Sun Certified Web Component Developer - Sun Certified Business Component Developer
gokan è offline   Rispondi citando il messaggio o parte di esso
Old 07-08-2011, 15:40   #3
MEMon
Senior Member
 
Iscritto dal: Dec 2002
Messaggi: 3359
Se vuoi usare la query per eliminare il record tramite id allora poi devi aggiungere executeUpdate().

Codice:
public void delete(int idpoiext){
    String query = "delete from Poiext where idpoiext = "+idpoiext;
    Session session= sessionFactory.getCurrentSession();
    session.createQuery(query).executeUpdate();
    
}
MEMon è offline   Rispondi citando il messaggio o parte di esso
Old 09-08-2011, 10:33   #4
cecce88
Junior Member
 
Iscritto dal: Jun 2007
Messaggi: 24
ok grazie ragazzi. l'insert e la delete funzionano correttamente. Ora il problema sta nell'update.
Vi spiego il mio procedimento.
Dall'index passo ad una pagina searchtoupdate.jsp dove inserisco l'id del mio DTO in un form e me lo va a ricercare inserendo i campi in nuovo form presente in "update.jsp". TUtto questo è gestito da un controller SearchtoupdateController.java che ha come setFormView(searchtoupdate) e come setSuccessView(update). Nella pagina update.jsp c'è appunto questo form dove posso modificare i campi del DTO e una volta modificati viene mostrata una pagina di conferma della modifica. Anche update.jsp è gestita da un controller chiamato UpdatepoiextController che ha come setFormView(update) e setSuccessView(successUpdate). Tutto questo non funziona. Mi viene generata un NullPointerException nel primo controller. Vorrei sapere innanzi tutto se è giusto il ragionamento!
Grazie
cecce88 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Tra audio e AI: la ricetta di Qualcomm per l'agentic AI Tra audio e AI: la ricetta di Qualcomm per l'age...
Qualcomm annuncia la nuova generazione di SoC Snapdragon 8 Elite Gen 6 Qualcomm annuncia la nuova generazione di SoC Sn...
realme 16 Pro Harry Potter Edition: il nuovo midrange ha uno stemma di Hogwarts che cambia colore al sole! realme 16 Pro Harry Potter Edition: il nuovo mid...
Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce Recensione REDMI Note 17 Pro: il midrange con ba...
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema Insta360 Luna Ultra: la potenza del sensore da 1...
Auto elettriche UE al 21,7%: sorpasso si...
GPT-6 Astra ha decifrato un messaggio na...
Registra a 7.471 fps e costa quanto un'u...
Microsoft riporta in vita Surface Mouse ...
OpenAI porta le funzioni agentiche vocal...
La Cina indaga su DeepSeek e Moonshot: a...
Sono 68.450 gli oggetti oltre i 10 centi...
950 agenti, 210 milioni di token e 21 or...
Dopo quasi 40 anni l'Italia riapre al nu...
Apple Intelligence su macOS 27 potrebbe ...
NVIDIA prepara la grafica del futuro con...
YouTube annuncia nuovi strumenti per per...
Phishing a nome ACI sul bollo auto: una ...
3 mini-PC ASUS per usare l'intelligenza ...
YouTube punta sempre di più sull'...
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: 13:44.


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