Scale no Hibernate

Olá pessoal.

Tenho um atributo na minha classe, anotado dessa maneira.

@Column (nullable=false, scale=1)
private Double margemLucro;

Mas no momento em que ele é persistido no banco, é criado um DOUBLE PRECISION de escala 3. Ou seja, deveria persistir 100.0 e é persistido 100.000

Tentei usar scale = 2 também, mas sempre é persistido com 3 casas decimais. Qual o meu erro?

não seria precision o atributo que vc quer?

@Column (nullable=false, precision=1)
private Double margemLucro; 

Pois é Juliano, depois do post, continuei pesquisando sobre isso, e tentei usar o precision=1. Mas está sempre sendo criado um DOUBLE PRECISION com 3 casas decimais.

Na realidade até fim uns testes usado tanto o scale como o precision, ou apenas com um ou com outro. E o resultado final é um campo com 3 casas decimais… estranho né?

e como está criado este campo na sua tabela no banco de dados?
ele não está com 3 casas decimais?

Exato, DOUBLE PRECISION com 3 casas decimais. Desculpe nao não informei direto, mas estou tentando fazer que fica com duas (para valores monetários). Para isto testei tanto scale quanto precision com valor 2. Testei até com o valor 1, mas o resultado final é sempre um DOUBLE PRECISION com 3.

Mas se no seu banco de dados, o campo está com 3 casas decimais, então o valor sempre vai ficar com 3 casas decimais. Vc precisa alterar isso no BD.

Na realidade, eu estou deixando toda e qualquer manipulação feita no banco por conta do Hibernate, até a criação de tabelas. Por isso eu estou usando as propriedades scale/precision do @Column, ou seja, para que eu nao tenha que fazer isso de forma manual.

Sendo assim, qdo eu crio um novo ‘database’ lá no meu IBExpert, eu ñ mecho em nada, e nem crio tabelas. Quando inicio minha aplicação, ela verifica a inexistencia das tabelas referentes as minhas classes persistentes, e as cria. Mas quando cria, cria com um maldito DOUBLE PRECISION p/ 3 casas decimais. :grin:

E eu gostaria que fosse ou um decimal, ou um numeric com o numero de casas decimais indicadas pelas propriedades scale/precision.

Coisinha embaçada… 8O

Deve ser um bug no Hibernate Annotations então, ou do SchemaExport, mais provavelmente. Tente submeter um issue no JIRA do projeto.

valeuz…

Hmm… é válido… boa idéia!

Vlw