bsr
bsr

Reputation: 58742

Best practice to represent Money (value + currency) in Grails

I'm not much familiar to Java Currency type, and how it being used in Grails. Though, I'm yet to use it, I saw a tag <g:currencySelect> to use in the views. So, how do I represent it in the domain class.

class Money {
BigDecimal value
Currency currency
....
}

or is there a better sol, which compares diff money objects, format according to the locale ( ',' in EU for separator etc)

thanks in advance. Babu.

Upvotes: 10

Views: 6381

Answers (5)

rdmueller
rdmueller

Reputation: 11062

since the original answer seems to be outdated, you might want to take a look at the money-plugin which is fresh and currently maintained.

Upvotes: 0

Vasyl Shyrochuk
Vasyl Shyrochuk

Reputation: 470

If you want to have also live exchage rates updates then following plugin could help https://grails.org/ExchangeRates+Plugin all rates are pulled from Yahoo Finance.

Upvotes: 0

Peter
Peter

Reputation: 29867

You should use BigDecimal. Groovy and Grails has excellent native support for it as a datatype on GORM domain classes as well. For reasoning behind using it, see here

What is the best data type to use for money in java app?

Upvotes: 2

Antony Stubbs
Antony Stubbs

Reputation: 13585

Use the JScience library. It's just a shame it's not in a Maven repo yet, and doesn't have a Groovy wrapper to make it Groovier (TM).

Upvotes: 0

ataylor
ataylor

Reputation: 66099

You might want to take a look a the Currencies plugin. It provides a Money class for holding monetary amounts of differing currencies. They can be embedded into domain classes like so:

class CustomerTransaction {
    Date date = new Date()
    Money amount

    static embedded = ['money']
}

Upvotes: 0

Related Questions