grails domain 如何不生成對應的表、如何不生成某些字段的表字段等

grails 底層集成了hibernate,所以會根據你的實體類自動創建表結構(對應表不存在的情況下),那麼如何創建一個不會自動生成表的實體類domain呢?

一、不生成對應的表

只需要在其他domain類中,定義你不需要表的domain類,即內部類

在A.groovy中聲明domain B

class A {

String name

}

 

class B {

String name

}

這樣 grails就只會生成表a,不會生成表b

二、生成表,不生成某些字段的表結構

static transients = ['myfield']  定義時只需要指定這個static transients 即可

 

class A {

String name

static transients = ["name"]

int age

}

這樣生成的表結構中就只有age字段,name沒有

三、去除樂觀鎖的影響

grais的domain會自動添加樂觀鎖,即每個表記錄都會有一個默認的version字段

如何去除呢

只需在domain中添加

static mapping = { version(false)} 即可

四、表已經存在,且與domain不對應 如何對應

grails domain與表結構是默認按照駝峯命名法對用的

比如 實體類 CustomerPhone 對應的表 customer_phone

字段 phoneView 對應表字段 phone_view

那麼表已經存在且不與domain實體類對應時怎麼辦呢?不必擔心

可以加上如下對應關係

static mapping = {

table('phone')

phoneView column : 'phone'

}

這樣 實體類 CustomerPhone 對應的表就是 phone

字段 phoneView 對應表字段就是 phone

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章