Ho la seguente (Grails) oggetto di dominio:PostgreSQL per Java Tipi di dati (Grails)
class Country {
Integer id
char country_abbr
String country_name
static mapping = {
version false
id name: 'id'
table 'country'
id generator:'identity', column:'id'
}
static constraints = {
}}
Il 'country_abbr' campo all'interno del 'tavolo Paese' ha digitare: carattere (2). Tuttavia, ogni volta che sto impostazione del tipo di dati dell'oggetto di dominio (ad 'country_abbr') per String, l'inizializzazione sta venendo a mancare con la seguente eccezione
org.hibernate.HibernateException: Wrong column type in mydb.country for column country_abbr. Found: bpchar, expected: varchar(255)
D'altra parte, lasciando questo tipo come Java char recupererebbe solo il primo carattere. Qualche idea su come posso mappare a questo tipo? Inoltre, cos'è esattamente bpchar?
Grazie
Solo una nota: non è necessario aggiungere l'attributo id, questo è reso automatico da Grails. Inoltre, la convenzione consiste nell'utilizzare Camelcase nei propri attributi, Grails gestirà la conversione in caratteri di sottolineatura per il recupero dei dati. String countryName sarà tradotto in country_name in querys. –
[Sembra un problema di mappatura Hibernate] (http://forum.spring.io/forum/spring-projects/data/33043-mapping-error-with-postgres). Potresti provare char [] per countryAbbr? –
@ SérgioMichels Ancora non funziona con char []; grazie per gli altri suggerimenti :) – Dan