我想知道在運行時是否有方法在常規中更改grails類的static mapping
部分。截至目前我的領域類看起來是這樣的:在運行時重定義域類映射
class Result {
ObjectId id
String url
def Result(){
}
void addObjectProperty(String key, value){
this[key]=value
}
//No constrains defined yet.
static constraints = {
}
static mapWith="mongo"
static mapping = {
collection "results"
database "test"
}
}
現在讓我們只想說,我想在運行時改變映射部分:
static mapping = {
collection "xyz"
database "mydb"
}
現在,當我打電話save()
的對象上它保存導致在集合xyz中的mydb。我敢打賭,有一種方法可以實現這一點,但由於我是新手,所以我在這裏度過了一段艱難的時間......如果有人能夠指引我走向正確的方向,那將會很好。
非常感謝...
即使這是可能的,我也不會這樣做。看起來像是一個正在等待發生的傷害世界。 – Gregg
那麼你會怎麼做? – evermean
這將取決於需要重新映射的原因。我從來沒有遇到過這樣一種情況:我需要更改映射,但不會以更持久的方式影響所有數據。 – Gregg