2009-08-15 7 views
1

Quand j'appelle EntityLoad-t-il charger toutes les données dans le tableau ou définit simplement une référence ou quelque chose, parce que dire si je fais ceci:Coldfusion ORM EntityLoad

<cfset test = EntityLoad("Table") /> 

puis faire:

ArrayLen(test) 

J'ai le nombre de lignes dans la base de données. Si c'est le cas alors il devrait charger toutes les données, et c'est vraiment inefficace, disons que j'ai une table avec 20x10^5 lignes ou quelque chose, ce sera horrible de charger toutes les données juste pour obtenir la longueur de la table.

+0

faire ce = quoi? codez votre code avec Ctrl + K. – Henry

Répondre

2

Sans voir votre code, je ne sais pas exactement ce que vous parlez, mais voici la course vers le bas:

EntityLoad w/1 argument (le nom d'entité) va charger toutes les entités avec ce nom de la DB. Il prend cependant quelques arguments supplémentaires (facultatifs) pour ajuster son comportement. Au lieu de décrire tous ici, je vais vous indiquer la documentation bêta et un site donnant quelques exmaples supplémentaires:

+0

C'était parfait, ce lien vers coldfusion-ria était vraiment ce dont j'avais besoin! Merci! –

+0

Heureux d'être utile! –

1

Pour faire ce que vous essayez de faire efficacement sans encourir un select * sur votre table, utilisez HQL.

< cfset hqlQuery = "select count (*) De personne"/>

< résultats de cfset = ORMExecuteQuery (hqlQuery) [1]/>