hibernate - java.lang.IllegalArgumentException: Can not set int field it.besmart.models.Park.idPark to [Ljava.lang.Object; -


i'm dwelling problem. have 3 classes

user , park have manytomany relation, , piano , park have manytoone relation.

in models, interesting parts user.java

@manytomany(fetch = fetchtype.eager)     @jointable(name="users_parcheggio", joincolumns = {@joincolumn(name="user_id") }, inversejoincolumns = {             @joincolumn(name="park_id") })     private set<park> parks = new hashset<park>(); 

this park.java

 @entity @table(name="parcheggio", catalog="smartpark") public class park implements serializable{      /**      *       */     private static final long serialversionuid = -7630704706109692038l;     @id     @generatedvalue(strategy = identity)     @column(name = "id_park", unique = true, nullable = false)     private  int idpark;      @notempty     @column(name="nome_park")     private  string nomepark;      @column(name="descrizione")     private  string descrizione;      @column(name="indirizzo")     private string indirizzo;      @column(name="citta")     private string citta;       @manytomany(fetch = fetchtype.eager)     @jointable(name="users_parcheggio", joincolumns = {@joincolumn(name="park_id") }, inversejoincolumns = {             @joincolumn(name="user_id") })      private set<user> users = new hashset<user>();      @onetomany(fetch = fetchtype.lazy, cascade=cascadetype.all, mappedby = "park")     private list<piano> piano;      public park(){     }      public park(int idpark, string nomepark, string descrizione, string indirizzo, string citta, set<user> users, list<piano> piano){         this.idpark = idpark;         this.nomepark = nomepark;         this.descrizione = descrizione;         this.indirizzo = indirizzo;         this.citta = citta;         this.users = users;         this.piano = piano;     }      public list<piano> getpiano() {         return piano;     }      public void setpiano(list<piano> piano) {         this.piano = piano;     }      public  int getidpark() {         return idpark;     }      public  void setidpark(int idpark) {         this.idpark = idpark;     }       public  string getnomepark() {         return nomepark;     }      public  void setnomepark(string nomepark) {         this.nomepark = nomepark;     }       public  string getdescrizione() {         return descrizione;     }      public  void setdescrizione(string descrizione) {         this.descrizione = descrizione;     }      public string getindirizzo() {         return indirizzo;     }      public void setindirizzo(string indirizzo) {         this.indirizzo = indirizzo;     }      public string getcitta() {         return citta;     }      public void setcitta(string citta) {         this.citta = citta;     }      public set<user> getusers() {         return users;     }      public void setusers(set<user> users) {         this.users = users;     }      @override     public int hashcode() {         final int prime = 31;         int result = 1;         result = prime * result + idpark;         return result;     }      @override     public boolean equals(object obj) {         if (this == obj)             return true;         if (obj == null)             return false;         if (getclass() != obj.getclass())             return false;         park other = (park) obj;         if (idpark != other.idpark)             return false;         return true;     } } 

and in piano.java

@manytoone     @joincolumn(name = "id_park")     public park getpark() {         return park;     }      public void setpark(park park) {         this.park = park;     } 

when use 3 classes in couples (user park or park piano) goes well, have piano given user.

in pianodaoimpl have method

public list<piano> findpianobyuser() {         authentication auth = securitycontextholder.getcontext().getauthentication();         string name = auth.getname();         user user = userservice.findbysso(name);         int userid = user.getid();         query q = getsession().createquery("from park p join p.users u u.id = :userid").setparameter("userid", userid);         list<park> parks = q.list();          query query = getsession().createquery("from piano p p.park in :parks").setparameterlist("parks", parks);         list piani = query.list();          return piani;     } 

the q query gives me correctly parks list user. pass list second query , got exception

org.springframework.web.util.nestedservletexception: request processing failed; nested exception org.hibernate.propertyaccessexception: not field value reflection getter of it.besmart.models.park.idpark 

caused by

java.lang.illegalargumentexception: can not set int field it.besmart.models.park.idpark [ljava.lang.object; 

what i'm doing wrong?

the cause of issue, idpark of reference type integer can't assigned value of primitive type int.
try replace this.

    @column(name = "id_park", unique = true, nullable = false)      private  integer idpark; 

with:

   @column(name = "id_park", unique = true, nullable = false)     private  int idpark; 

try check value of userid have integer not int, because think have exception:

  "from park p join p.users u u.id = :userid").setparameter("userid", userid); 

Comments

Popular posts from this blog

authentication - Mongodb revoke acccess to connect test database -

r - Update two sets of radiobuttons reactively - shiny -

ios - Realm over CoreData should I use NSFetchedResultController or a Dictionary? -