Qual tipo deve ter um atributo de uma entidade minha que representa um valor em dinheiro?
Seria um Double o suficiente?
Qual tipo deve ter um atributo de uma entidade minha que representa um valor em dinheiro?
Seria um Double o suficiente?
Qual tipo deve ter um atributo de uma entidade minha que representa um valor em dinheiro?Seria um Double o suficiente?
ok, mas como eu faria pra usar isso com o hibernate? Afinal de contas não quero que isso seja um relacionamento, mas sim um atributo na tabela.
O você teria uma classe Money que seria um objeto valor da sua entidade!
Ops. Desculpe pela duplicação o Firefox travou aqui e imaginei que não havia sido enviado!
sim, mas todo atributo que não é um tipo primitivo se torna um relacionamento no hibernate (ao invés de um atributo)
Não necessariamente! O objeto valor pode ficar na mesma tabela! De uma pesquisada sobre Object Value no hibernate.
Uso o BigDecimal em calculo de milhões e nunca tiver problemas. 
O padrão Money é diferente. É especifico para trabalhar com dinheiro. BigDecimal por exemplo não tem o conceito de moeda, já o padrão Money tem. Ele também coloca outros cálculos especificos como rateio de valores para que não você não perca centavos em divisões.
Eu conheço a utlização e VO’s mas não em entidades do hibernate… pesquisei sobre o tema mas não encontrei nada que ajudasse, vc poderia me indicar algo?
No livro Java Persistence API com Hibernate ele fala sobre isso.
Se, não me engano, no tutorial do JPA/Hibernate também tem algo sobre isso.
Na maquina que estou agora não tenho nenhum projeto em java. A noite eu pego e colo aqui.
Segue um exemplo abaixo de um VO dentro de uma Entity
@Entity
@DiscriminatorValue("PF")
public class CadastroPessoaFisica extends Cadastro
{
...
@Embedded
private CPF cpf;
...
}
@Embeddable
public final class CPF
{
@Column(name = "CPF_CNPJ")
private String numero;
...
}