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