임의 순서로 결과 집합을 사용하여 엔티티로드를 수행하는 방법은 무엇입니까?임의의 순서로 cf9 orm entityload
따라서 entityload("modelName")
을 수행하는 경우 어떻게 호출 할 때마다 순서가 임의로 달라 지도록 정렬 순서를 설정하겠습니까?
많은 감사합니다.
임의 순서로 결과 집합을 사용하여 엔티티로드를 수행하는 방법은 무엇입니까?임의의 순서로 cf9 orm entityload
따라서 entityload("modelName")
을 수행하는 경우 어떻게 호출 할 때마다 순서가 임의로 달라 지도록 정렬 순서를 설정하겠습니까?
많은 감사합니다.
글쎄, 간단히 말해서 entityLoad()는 정말 어렵습니다. 그러나 HQL의 경우 실제로 그렇게 나쁘지 않습니다.
대부분의 DB 언어에는 임의의 기능이 있습니다. 그래서, 예술 테이블과 엔티티에 내장하여, 당신은 당신의 결과를 생성하는 ormExecuteQuery를 사용할 수 있습니다
<cfscript>
hql = " SELECT DISTINCT artName
FROM art
ORDER BY RANDOM() ";
results = ormExecuteQuery(hql);
for(art in results) {
writeOutput(art & "<br/>");
}
</cfscript>
그것을에 null 레코드를 반환하지 않습니다 때문에, 당신은 모든 시간을 설정 임의의 결과를 얻을 수 있습니다.
희망이 도움이^__^
내가 사용하는 또 다른 방법은 내 테이블 (모델)과 무작위로 채 웁니다하는 기능에있는 sortOrder 열을 만드는 것입니다. 아마도 jCaito의 옵션만큼 효율적이지는 않지만 몇 가지 이점이 있습니다.
public function getRandom(){
randomizer();
return entityload("provider", {}, "sortOrder");
}
private void function randomizer(){
source = entityload("provider");
for(i=1;i<=ArrayLen(source);i++){
source[i].setSortOrder(randRange(1,999));
}
}
범위를'randRange (1, source.len())'로 변경하면 배열 길이 내에서 정렬됩니다. –
당신이 말했듯이이 함수는 당신의 DB에 달려 있습니다. MySQL에서는 RANDOM() 대신 RANDOM()을 사용합니다. – CfSimplicity
jcaito .. 감사합니다. .. 문제는 단지 setter 및 getters를 얻지 못했다는 것입니다. 데이터가 배열 또는 배열로 돌아 왔습니다. . 나 또한 모든 게터와 세터를 포함한 나에게 완전한 엔티티를 돌려 준 또 다른 접근법을 사용하여 대안 답으로 게시 할 것이다. 다시 한 번 감사드립니다! – Jason