Hi,

The challenge I'm facing is some sort of dynamic data source. Your valuable 
input is highly appreciated.

Below is my data-config.xml. I have one user database and two company 
databases. The user table in the user database has four columns which are id + 
name + company_dbname + company_id. Depending on the company_dbname, I need to 
look up either companydb0 or companydb1 to get the company name by the 
company_id. 

<dataConfig>
    <dataSource type="JdbcDataSource"
        name="userdb"
        driver="com.mysql.jdbc.Driver"
        url="jdbc:mysql://db0.com:3306/user"
        user="xxx"
        password="calltextual" batchSize="-1"/>

    <dataSource type="JdbcDataSource"
        name="companydb0"
        driver="com.mysql.jdbc.Driver"
        url="jdbc:mysql://companydb0.com:3306/company"
        user="xxx"
        password="calltextual" batchSize="-1"/>

    <dataSource type="JdbcDataSource"
        name="companydb1"
        driver="com.mysql.jdbc.Driver"
        url="jdbc:mysql://companydb1.com:3306/company"
        user="xxx"
        password="calltextual" batchSize="-1"/>

    <document name="USERS">
        <entity name="USER" dataSource="userdb"
            query="SELECT id, name, company_dbname, company_id from user ">
            <field column="id" name="id" />
            <field column="name" name="name" />
            <entity name="company" dataSource="${USER.company_dbname}"
                query="SELECT name from company
                WHERE id = '${PG0.company_id}' ">  
                <field column="name" name="company_name" />
            </entity>
        </entity>
    </document>
</dataConfig>

Is it doable to set the data source dynamically for the child entity? In my 
case, I would like to set company entity dataSource to 
"${USER.company_dbname}"  which is returned from USER entity query.

If it's not doable with current implementation, I would like to download the 
source code and customize it for my needs. Which source java file I should 
start with?

Many many thanks,

Kevin

Reply via email to