0
在我的grails應用程序中,我有一個sql查詢,它根據另一個數據庫中的列從1個數據庫中選擇列數據。 因此它正在與SAME查詢中的2個數據庫進行交互。在Grails的相同查詢中使用2個數據庫
有沒有一種方法可以根據從另一個數據庫檢索的數據從1個數據庫中選擇數據。 在這樣的情況下,你將如何放下代碼。
想法?
在我的grails應用程序中,我有一個sql查詢,它根據另一個數據庫中的列從1個數據庫中選擇列數據。 因此它正在與SAME查詢中的2個數據庫進行交互。在Grails的相同查詢中使用2個數據庫
有沒有一種方法可以根據從另一個數據庫檢索的數據從1個數據庫中選擇數據。 在這樣的情況下,你將如何放下代碼。
想法?
找到了一條途徑。
創建了2個域對象,Cdisc和Tape。 012isccdisc和磁帶是2個不同的數據庫中的2個表。這兩個表都有一個共同的主Id,player_id。 這個想法是在一個頁面上顯示來自這兩個表的數據。
Cdisc.groovy
package tune
class Cdisc {
String name
double cId
String id
static mapping = {
table 'cdisc'
version false
columns {
id column:'player_id'
cId column:'c_id'
name column: 'name'
}
}
}
Tape.groovy
package tune
class tape {
String id
String tapeDate
String comments
static mapping = {
table 'tape'
version false
columns {
id column:'player_id'
tapeDate column:'tape_date'
comments column: 'comments'
}
}
public def getName(){
def cdisc = Cdisc.findById(this.id)
return cdisc.name
}
}
TapeController.groovy
def list = {
params.max = Math.min(params.max ? params.int('max') : 10, 100)
[tapeInstanceList: tape.findAllByCommentsLike('%Test%'), tapeInstanceTotal: Tape.count()]
}
最後使用吸氣
顯示從表CDISC名list.gsp
<g:each in="${tapeInstanceList}" status="i"
var="tapeInstance">
<tr class="${(i % 2) == 0 ? 'odd' : 'even'}">
<td><g:link action="edit" id="${tapeInstance.id}">
${fieldValue(bean: tapeInstance, field: "id")}
</g:link></td>
<td>
${fieldValue(bean: tapeInstance, field: "tapeDate")}
</td>
<td>
${fieldValue(bean: tapeInstance, field: "comments")}
</td>
<td>${tapeInstance.getName()}</td>
</g:each>
因此,我們使用getter從另一個數據庫的第二個表中獲取數據。 爲我工作。讓我知道是否有任何其他解決方法。