Carregando dados com ORM
Problema:
Voce precisa carregar dados de um database usando o novo recurso do ColdFusion 9, ORM (Object Relational Mapping).
Solução:
O novo recurso do ColdFusion 9, ORM (Object Relational Mapping) fornece fácil acesso aos poderosas recursos do Hibernate. Alé de simplesmente carregar dados, ColdFusion fornece diversas funções para adicionar e atualizar dados, incluindo as funções entitySave(), entityyNew() e ormFlush(). Uma vez mais, isso tudo é feito sem escrever um única linha de SQL!
Explicação detalhada:
Antes de usarmos o novo recurso ORM do ColdFusion 9, primeiramente o ORM deve estar habilitado. Isso é feito no arquivo Application.cfc, configurando tres atributos: name, ormenabled e datasource.
<cfcomponent>
<cfset this.name = "wineApp" />
<cfset this.ormenabled = "true" />
<cfset this.datasource = "wine" />
</cfcomponent>
O atributo datasource tambem é novo em ColdFusion 9. Configurando esse atributo, todas as tags <cfquery> na aplicação que não precisem especificar um datasource usarão esse valor especificado no atributo datasource do Application.cfc.
Uma vez que ORM estiver habilitado, uma entidade deve ser criada. Isso é feito com um componente ColdFusion (CFC). A funcionalidade do ORM deve ser habilitada no CFC ao se configurar o atributo persistent para verdadeiro (true). Pode-se tambem dar um nome único à entidade usanto o atributo entityname e pode ser mapeado à uma tabela existente usando o atributo table.
<cfcomponent persistent="true" table="wine" entityname="wine">
</cfcomponent>
Cada entidade deve definir propriedades. Isso é feito usando a tag <cfproperty>. O atributo name deve casar com o nome do campo no database.
<cfcomponent persistent="true" table="wine" entityname="wine">
<cfproperty name="wineId" />
<cfproperty name="wineVintage" />
<cfproperty name="wineType" />
<cfproperty name="wineRating" />
</cfcomponent>
Dados podem ser carregados em uma variável usando-se a função entityLoad(). Os dados sereão retornados como uma array de objetos entidade.
<cfset wine = entityLoad('wine') />
<cfdump var="#wine#" />
O código acima produzirá o seguinte:
Uma outra função ORM importante de se notar aqui, que torna a saída de dados mais fácil, é a função entityToQuery() que converte a array de objetos entity para uma query ColdFusion.
<cfset wine = entityLoad('wine') />
<cfset qWine = entityToQuery(wine) />
<cfdump var="#qWine#" />
O código acima produz o seguinte:
ColdFusion agora está retirando dados de um database sem escrever uma única linha de código SQL!
Versão em inglês: Adobe ColdFusion Cookbook
0 responses to “Carregando dados com ORM”