광고 부동산을위한 웹 애플리케이션을 개발 중입니다. 검색 페이지에서 임의의 광고를 보여주고 싶지만 지금까지는 데이터베이스에서 임의의 레코드를 선택해도 성공하지 못했습니다. 이 콘솔에서 일했다,하지만 난 정말 EJB를 QL에 넣어 없습니다 :ejb ql로 데이터베이스에서 임의의 행 선택
SELECT * FROM RealEstate ORDER BY RANDOM()
내가 뭘하려 : 내가 대신의 숫자를 쓸 때 그것은 듯
Random random = new Random();
Query q = em.createQuery("SELECT r FROM RealEstate r ORDER BY :random");
q.setParameter("random", random.nextInt());
return q.getResultList();
작동하려면 : 무작위 매개 변수가 있지만 예외가 있어요. 나는 NativeQuery
Query q = em.createNativeQuery("SELECT * FROM RealEstate ORDER BY RANDOM()");
List<RealEstate> resL = q.getResultList();
으로 문제를 해결하려하지만 난이 웹 페이지에 광고를 표시하려고 할 때 필드에 문제가 있었다. RealEstates가 아닌 결과 목록에 개체가 있기 때문에 추측합니다. 조인 된 상속을 사용합니다. 네이티브 질의 사용을 방해하는지는 모르지만 ejb ql 쿼리를 사용하는 것을 선호합니다. 나는 어떤 아이디어라도 열어.
참고 : 모든 레코드를 선택하는 것은 순서가 다르다는 것을 알고 있으므로 결과 집합을 제한하면 다음 단계가됩니다.
좋은 자습서를 javatpoint하기 당신이 한 것처럼 setMaxResult를 추가하면 매력처럼 작동합니다. 그래서 고마워요. – Peter
다행 이네요. –