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

    [Hibernate] Domanda su mapping tra classe Java e tabella del DB

    Ciao,
    ho bisogno di voi per avere qualche piccolo chiarimento circa come effettuare il mapping tra una classe Java ed una tabella di un DB MySql mediante Hibernate usando le JPA annotations per effettuare il mapping tra variabili di istanza della classe Java e le colonne della mia tabella.

    Stò seguento questo tutorial: http://java.html.it/guide/lezione/45...g-e-hibernate/
    Nel tutorial la chiave primaria della tabella Book è il solo campo ISBN della tabella.

    La mia tabella è invece così strutturata: POI(nome, lat, lon, alt, tipologia, wikiLink) e la chiave primaria è composta da più di una colonna (per l'esattezza la chiave primaria è composta dalle colonne: nome, lat, lon, alt

    Ora ho un paio di dubbi. Il primo dubbio riguarda proprio come dire ad Hibernate che la chiave primaria è formata da più colonne. Nell'esempio del tutorial mette il tag @Id per indicare che quella variabile è chiave primaria nella relativa tabella della colonna....solo che io ho che la chiave primaria è formata da più colonne...così ho pensato di mettere il tag @Id davanti a TUTTE le variabili che mappano una colonna della chiave primaria della tabella POI

    Così in pratica:

    codice:
    package controller;
    
    import javax.persistence.Column;
    import javax.persistence.Id;
    import javax.persistence.Table;
    import org.hibernate.annotations.Entity;
    
    
    @Entity
    @Table(name = "poi")
    
    public class POI {
    
        @Id
        @Column(name = "nome")
        private String nome;
    
        @Id
        @Column(name = "lat")
        private float lat;
    
        @Id
        @Column(name = "lon")
        private float lon;
    
        @Id
        @Column(name = "alt")
        private float alt;
    
        @Column(name = "tipologia")
        private int tipologia;
    
        @Column(name = "wikiLink")
        private String wikiLink;
    
        public float getAlt() {
            return alt;
        }
    
        public void setAlt(float alt) {
            this.alt = alt;
        }
    
        public float getLat() {
            return lat;
        }
    
        public void setLat(float lat) {
            this.lat = lat;
        }
    
        public float getLon() {
            return lon;
        }
    
        public void setLon(float lon) {
            this.lon = lon;
        }
    
        public String getNome() {
            return nome;
        }
    
        public void setNome(String nome) {
            this.nome = nome;
        }
    
        public int getTipologia() {
            return tipologia;
        }
    
        public void setTipologia(int tipologia) {
            this.tipologia = tipologia;
        }
    
        public String getWikiLink() {
            return wikiLink;
        }
    
        public void setWikiLink(String wikiLink) {
            this.wikiLink = wikiLink;
        }
    
    }
    Va bene?

    Il decondo dubbio invece riguarda gli import usati per poter usare questi tag di Hibernate per effettuare il mapping.

    NetBeans mi dà varie possibilità di importare varie classi...con alcune mi dà errore...con altre no...nello specifico con queste importate non segnala errori...ma....vanno bene? sono proprio queste le cose da importare?

    codice:
    import javax.persistence.Column;
    import javax.persistence.Id;
    import javax.persistence.Table;
    import org.hibernate.annotations.Entity;
    Grazie
    Andrea

  2. #2
    Utente di HTML.it L'avatar di Nexs87
    Registrato dal
    Jun 2010
    Messaggi
    29
    Le mappature complete le fanno direttamente i tools. Se usi NetBeans, non hai bisogno neanche di scaricare il plugin di Hibernate, è già incluso al suo interno.
    Riguardo alla tua domanda comunque, non ho ben capito. Intendi gestire le foreing key? In tal caso nel file hbm devi usare la parola "many-to-one".

  3. #3
    Ciao!

    Allora per la prima domanda, non è supportato da hibernate quello che vuoi fare tu....

    Maggiori info le trovi qui INFO sotto il capitolo 2.2.3.2

    Per la seconda domanda, va benissiomo il package javax.persistence .

    Saluti

    Gengi.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.