«

»

Nov 11

Print this Post

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 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 atributoname 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!

by Kevin Schmidt
Versão em inglês: Adobe ColdFusion Cookbook

Permanent link to this article: http://ensina.me/coldfusion/carregando-dados-com-orm/

Leave a Reply