1 votes

Coldfusion ORM EntityLoad

Lorsque j'appelle EntityLoad, est-ce qu'il charge TOUTES les données de la table ou est-ce qu'il établit juste une référence ou quelque chose comme ça, parce que disons que si je fais ça.. :

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

et ensuite faire :

ArrayLen(test)

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

2voto

Clint Miller Points 241

Sans voir votre code, je ne sais pas exactement de quoi vous parlez, mais voici le détail :

EntityLoad avec 1 argument (le nom de l'Entité) va charger toutes les Entités avec ce nom depuis la base de données. Il accepte cependant quelques arguments supplémentaires (facultatifs) pour ajuster son comportement. Au lieu de les décrire tous ici, je vous renvoie à la documentation de la version bêta et à un site qui donne d'autres exemples :

1voto

Andrew Taylor Points 21

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

<cfset hqlQuery = "select count(*) From person" />

<cfset results = ORMExecuteQuery(hqlQuery)[1] />

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X