Hibernate e sqlserver2008: “Invalid column name” error

Nel mio caso questo errore si è verificato dopo una nuova installazione di SQLSERVER. Il problema per me è stato che il nuovo server aveva delle regole di confronto (COLLATE) diverse, che implicava il fatto che i nomi delle tabelle e dei campi fossero diventate CASE SENSITIVE.

Il campo ID (chiave della tabella e autoincrementale) era mappato dalla proprietà id, in questo modo:

private Long id;
 
@Column(name = "id", nullable = false)
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
public Long getId() {
	return id;
}

e l’errore generato da hibernate era:

Hibernate: 
    select
        tipofiltro0_.id as id5_,
        tipofiltro0_.nome as nome5_ 
    from
        MOL_TIPOFILTRO tipofiltro0_
2013-02-11 12:54:32,159 DEBUG org.hibernate.engine.jdbc.spi.SqlExceptionHelper - Invalid column name 'id'. [n/a]

Eseguendo la stessa query all’interno del Management Studio ottenevo lo stesso errore.

Le soluzioni possono essere:

  • Modificare le impostazioni di COLLATE del database, o delle singole tabelle interessate, oppure
  • Fare in modo che i campi delle tabelle e le variabili associate siano entrambe minuscole.

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>