java - 就像 SQL 中的函数和 JPA 一样

标签 java sql jpa

我的代码是从参数:title中选择文本。但我得到的结果是不正确的。就我而言,Book 类扩展了 Media。

这是我的查询。

String queryStr = "SELECT DISTINCT(b) FROM Book b, Media m  WHERE lower(m.title) LIKE :title"
TypedQuery<Book> query = em.createQuery(queryStr, Book.class);
if (book.getTitle() != null && book.getTitle() != "")
            query.setParameter("title", "%" + book.getTitle().toLowerCase() + "%");

我的参数是“harry”。我想只得到 1 个结果,但我得到了我拥有的所有数据。 我的代码有什么错误?请帮忙。

最佳答案

您应该将 Media 排除在查询之外。 JPA 还知道 Book 扩展了 Media,因此它知道从哪里获取书籍的 Media 部分。

关于java - 就像 SQL 中的函数和 JPA 一样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10819753/

相关文章:

java - JPA:连接表语法

java.lang.ClassNotFoundException : sun. jdbc.odbc.JdbcOdbcDriver 发生异常。为什么?

java - 方法引用 lambda 中的显式类型提示导致原始类型

mysql - 如何组合三个选择查询,每个查询都排除前一个查询的结果?

sql - 如果列数据以数字开头,则 Like 操作在 nvarchar 列筛选器上不返回任何行

java - 为什么 JPA 更新 OrderColumn 而不是在创建时设置它?

java - JPA Query with HQL and pageable create subselect with * return 并生成别名错误

java - 如果访问文件时发生错误或数据无效,如何让程序终止?

java - 如何将Graphics2D转换为BufferedImage?

sql - 如何追加到 SQL 中的现有记录?