Я бы хотел сделать что-то подобное с помощью встроенного в ORM Adobe ColdFusion:
<cfquery name="myquery">
SELECT
column1,
column2
FROM Clients.#session.currentuser.user.SCHEMANAME#.accounts
</cfquery>
Я не могу придумать, как сделать что-то подобное динамически. Это работает, но жестко кодирует схему.
<cfcomponent persistent="true" entityname="myaccounts" table="accounts" catalog="clients" schema="client1" >
<cfproperty name="id" column="id" generator="increment">
<cfproperty name="number" column="number">
</cfcomponent>
Я пытался вставить динамическую переменную для атрибута схемы, но, похоже, она не работает. Я также попытался удалить атрибуты каталога и схемы из cfcomponent, а затем использовать такую стратегию именования, но получаю ошибку.
public string function getTableName(String tableName){
return "Clients.client1." & arguments.tableName;
}
Ошибка: «Таблица Clients.client1.accounts, определенная для cfc pathtocfc.cfcname, не существует».
Если я добавлю обратный каталог в качестве «клиентов» и удаляю клиентов из именования, я получаю эту ошибку:
Таблица fnbo.accounts, определенная для cfc pathtocfc.cfcname, не существует в нулевой схеме и клиентах каталога.