Jpa 如何从数据库中获取随机对象?
为了更具活力,我想在我的应用程序中添加一个随机部分。 以下是我在其他技术中所做的,以及在游戏中不起作用的:Jpa 如何从数据库中获取随机对象?,jpa,random,playframework,Jpa,Random,Playframework,为了更具活力,我想在我的应用程序中添加一个随机部分。 以下是我在其他技术中所做的,以及在游戏中不起作用的: long id = JPA.execute("select id from Realisation r order by RANDOM() LIMIT 1"); 这是堆栈: unexpected token: LIMIT near line 1, column 55 评论: 无论是在应用程序还是数据库中,对我来说都没有区别 数据库中大约有100个“实现” 我只需要一个ID,不需要完整
long id = JPA.execute("select id from Realisation r order by RANDOM() LIMIT 1");
这是堆栈:
unexpected token: LIMIT near line 1, column 55
评论:
- 无论是在应用程序还是数据库中,对我来说都没有区别李>
- 数据库中大约有100个“实现”李>
- 我只需要一个ID,不需要完整的对象李>
- MySQL数据库背后的一切李>
经过一点调查,我是这样做的:
- 在application.conf中定义jpa.dialen:
jpa.dialen=org.hibernate.dialen.mysqldialent
- 使用经典模型实用程序获取完整对象,而不仅仅是id:
realization r=realization.find(“order by RAND()”).first()代码>在JPQL中没有“limit”子句,您需要的是分页。如果这是一个JPQL查询,您可以改用Query.setMaxResults,这在文章中并不完全清楚。经过一点调查,下面是我如何完成的。在application.conf中定义jpa.dial:
jpa.dialogue=org.hibernate.dialogue.mysqldialogue
使用经典模型实用程序获取完整对象,而不仅仅是id:
Realisation r = Realisation.find("order by RAND()").first();
这不是最好的方法,因为我只需要ID,而不需要完整的对象。无论如何,我没有其他的解决办法。如果有人有一个身份证,我就要了 这不一定是一个答案,但这里似乎有一些很好的信息:是的,谢谢,但问题是针对JPA/HQL的,而不是MySQL。事实上,这不是明确的说法,但这是一个playframework标记的问题。玩为了更加简单,在JPA/Hibernate上添加了一个层。我不认为setMaxResults可以通过他们的层使用。