- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我面临着通过某些(子)字符串搜索实体的简单问题,它们可能包含这些字符串。例如。我有 u_name 为“rags”、“mechrags”、“meragsch”的用户,我将进入搜索窗口“rags”,然后我使用以下查询来搜索包含“rags”的字符串
SELECT u FROM User_personal u WHERE u_name LIKE'%rags%'
我想根据搜索字符串“rags”在字符串中第一次出现的情况对上述查询返回的结果进行排序,因此结果将是 rags、meragsch、mechrags(按此顺序)。
我正在考虑使用 LOCATE 函数来获取上述结果,如下
SELECT u FROM User_personal u WHERE u_name LIKE'%rags%' order by
LOCATE(u.u_name,'rags')
但是结果比上一个要好但是 如果有 4 个用户“ragsch”、“rags”、“meragsch”、“mechrags”,则答案
应该是“rags”,“ragsch”,“meragsch”,“mechrags”,但输出是
“ragsch”,“rags”,“meragsch”,“mechrags”即数据库顺序
我正在考虑使用子查询,我们首先按长度排序,然后按结果排序,如果在第一次出现“rags”时排序,结果可能会出现,但查询未运行
select user from User_personal user where exists (select u from User_personal u where u.u_name like'%rags%' order by LENGTH(u.u_name)) order by LOCATE(user.u_name,'rags')
如这里http://docs.oracle.com/html/E13946_04/ejb3_langref.html#ejb3_langref_subquerie
有人可以建议一种获得正确输出的方法吗?
SELECT u FROM User_personal u WHERE u_name LIKE'%rags%' ORDER BY LOCATE(u.u_name,'rags'), LENGTH(u.u_name)
给出 OBJECT_DB 建议的正确输出
现在我在使用它时遇到问题,如下所示
public static List<User_personal> search(String str, EntityManager em)
{
String dup ="%"+str+"%";
Query q = ("SELECT u FROM User_personal u WHERE u_name LIKE :dup ORDER
BY LOCATE(u.u_name,'rags'), LENGTH(u.u_name)",User_personal.class)
List<User_personal> result = q.getResultList();
if (!result.isEmpty()) {
return result;
}
return null;}*
如果我将 str 指定为“rags”,我应该得到满足所需条件的所有“u”,但它显示如下错误
<h1>HTTP Status 500 - Attempt to execute a query with too few arguments
为了检查,我直接给出了“rags”并获得了所需的输出,但无法理解传递参数时的问题。
public static List<User_personal> search(String str,EntityManager em)
{
//String dup ="%"+str+"%";
Query q = ("SELECT u FROM User_personal u WHERE u_name LIKE '%rags%'
ORDER BY LOCATE(u.u_name,'rags'), LENGTH(u.u_name)",User_personal.class)
List<User_personal> result = q.getResultList();
if (!result.isEmpty()) {
return result;
}
return null;}*
给出正确的输出。
任何人都可以建议在这里使用变量的正确方法
明白了!!!!!!
public static List<User_personal> search(String str, EntityManager em) {
Query q = em.createQuery("SELECT u FROM User_personal u WHERE
CONCAT(u.fname,u.lname) LIKE :name ORDER BY
LOCATE(CONCAT(u.fname,u.lname),'rags'),
LENGTH(CONCAT(u.fname,u.lname))",
User_personal.class);
q.setParameter("name", "%"+str+"%");
List<User_personal> result = q.getResultList();
if (!result.isEmpty()) {
return result;
}
return null;}
这给出了所有带有“rags”的“u”,并且也按照长度顺序和“rags”的第一次出现
那么我们可以像“Rags”或“RAGS”这样不区分大小写的方式执行此操作吗?或者“rags”应该返回相同的值?
完成!!!
public static List<User_personal> search(String str, EntityManager em) {
Query q = em.createQuery("SELECT u FROM User_personal u WHERE
lower(CONCAT(u.fname,u.lname)) LIKE lower(:name) ORDER BY
LOCATE(CONCAT(u.fname,u.lname),'rags'),
LENGTH(CONCAT(u.fname,u.lname))",
User_personal.class);
//SELECT u FROM User u WHERE lower(u.username) LIKE :username
q.setParameter("name", "%"+str+"%");
List<User_personal> result = q.getResultList();
if (!result.isEmpty()) {
return result;
}
return null;}
如果我给出“Rags”,它会找到“rags”、“Rags”和“RAGS”,这就是我需要的:)
谢天谢地,任何更好的方法都被接受,尝试更好的方法 谢谢大家
最佳答案
也许只有 2 个顺序表达式?
从 User_personal u 中选择 u,其中 u_name LIKE'%rags%' 按位置排序(u.u_name,'rags'),长度(u.u_name)
关于java - 使用 ObjectDB JPQL 对搜索结果进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44208758/
在这个基准测试中,ObjectDB 是最快的 DB: http://www.jpab.org/All/All/All.html 但我看不到来自 ObjectDB 的任何其他基准测试结果。有人在使用 O
在学习本教程时: http://www.objectdb.com/tutorial/jpa/eclipse 我收到以下错误: Exception in thread "main" [ObjectDB
我正在尝试创建一个应用程序,可以在 ObjectDB 数据库(嵌入)中存储包含文件和文件夹的树结构,但即使进行简单的测试,我仍然会收到错误... 实体类 Node.java @MappedSuperc
我正在使用 Tomcat、Eclipse 和 Maven。我将 ObjectDB 添加到项目中(库 > 添加外部 jar)。 在 Eclipse 中,一切似乎都很好。它不显示任何“未找到”错误并且自动
我需要一个带有 ObjectDB 的原子计数器,但以下代码无法按我的预期工作: final EntityManagerFactory emf = Persistence.createEntit
我正在尝试设置 ObjectDB。我能够创建一个数据库并使用资源管理器查看它,使用嵌入式服务器模式能够在运行我的程序时保持资源管理器打开。当我的数据库位于 $objectdb/db/目录中时,这一切都
以下代码: EntityManagerFactory emf = Persistence.createEntityManagerFactory("test.odb"); EntityM
我正在创建一个使用 ObjectDB 来创建和维护一组数据库的 Java 应用程序。我目前正在尝试实现一个数据库来存储由用户名和密码字符串组成的用户对象。在 JFrame/swing 类上,我有一个用
我正在使用 ObjectDB 构建 Spring MVC 应用程序。我的目标是使用 Java 8 日期和时间作为查询参数,以便在 where 子句中进行比较。 假设我有以下具有测量日期时间对象的实体:
我对 ObjectDB 非常陌生。我尝试使用它的原因是使用嵌入式数据库创建桌面java应用程序。换句话说,我最终想给我的 friend 一个单独的可运行的 jar 文件,这样他就可以访问 javaFX
我正在尝试根据传递给它的参数来填充 tsp 页面。目前我正在使用博客文章的标题,我不喜欢这个,但我想要概念证明,并且在获取对象 ID 时遇到困难。因此,我暂时传入标题字符串,以便稍后更改它。 我的查询
我有一个 DaoService,它在应用程序启动时被初始化。 public DaoService() { Map properties = new HashMap(); propert
我的 Java 应用程序中使用了一个 ObjectDB 数据库,它只包含一种类的负载,我们称它为 Record。 我希望我的程序是开放的/可扩展的,假设有人修改了 Record 类,并添加了另一个字段
假设我在 java 中创建了一个名为 Point 的对象,具有 2 个属性(int x 和 int y),并将一些实例存储在 objectdb 文件中。我知道如何从该文件中检索所有项目(作为对象),但
我面临着通过某些(子)字符串搜索实体的简单问题,它们可能包含这些字符串。例如。我有 u_name 为“rags”、“mechrags”、“meragsch”的用户,我将进入搜索窗口“rags”,然后我
我正在尝试使用 JPA 创建一个 objectdb。下面的代码是我所做的,但不确定我是否正确完成。实体是学生,属性是名字、姓氏等。有人知道我是否设置正确或错误吗? package Student;
我最近完成了本教程, http://www.objectdb.com/tutorial/jpa/eclipse/spring/run 它说在Tomcat目录下创建了.odb文件,但是我找不到Tomca
我想知道是否可以在可运行的 JAR 中包含 ObjectDB 数据库文件 .odb。 方法: EntityManagerFactory emf = Persistence.createEntityMa
我对 Spring JPA 与 ObjectDB 数据库配合是一个新手,但我遇到了一个无法解决的问题。 我有一个使用上述技术编写的应用程序,它工作正常,它保留新实体等(因此我认为配置 bean 没有问
文件 .vscode/.ropeproject/objectdb 在对一些 python 代码应用重构后(使用 DonJayamanne 的 pythonVSCode 扩展)被修改(创建)。 obje
我是一名优秀的程序员,十分优秀!