Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jpa 如何从数据库中获取随机对象?_Jpa_Random_Playframework - Fatal编程技术网

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可以通过他们的层使用。