我正在尝试通过使用':‘字符的JPA运行本机查询。该特定实例在查询中使用了MySQL用户变量:
SELECT foo, bar, baz,
@rownum:= if (@id = foo, @rownum+1, 1) as rownum,
@id := foo as rep_id
FROM
foo_table
ORDER BY
foo,
bar desc
JPA代码:
Query q = getEntityManager().createNativeQuery(query, S
我正在尝试使用以下查询从数据库中选择一个序列id:
@Query("select max(pi.sequence) + 1 from ProductImage pi where pi.product = :product")
int nextSequenceForProduct(@Param("product")Product product);
它工作得很好,除了当表中没有值时,它会从JPA代码中抛出某种类型的空值异常。
有没有办法在spring jpa中处理空值?例如,像这样的SQL:
select ifnull(max(pi.sequence),1
我已经制定了一个SQL查询,我需要将其转换为JPQL。该查询在SELECT子句中包含一个子查询,并且还从该子查询所包含的同一个表中选择所有行。 下面是我试图翻译的SQL查询的一个示例: SELECT table.* FROM TABLE table, (SELECT * FROM TABLE table1 WHERE ... ) table1 WHERE table.id >= table1.id 我遇到困难的部分是我使用子查询SELECT table.* FROM TABLE table, (SELECT * FROM TABLE table1 WHERE ... ) table1创
我知道我可以将列表传递给JPA中的命名查询,但是NamedNativeQuery呢?我尝试了很多方法,但仍然不能简单地将列表传递给NamedNativeQuery。有人知道如何将列表传递给NamedNativeQuery中的in子句吗?非常感谢!
NamedNativeQuery如下:
@NamedNativeQuery(
name="User.findByUserIdList",
query="select u.user_id, u.dob, u.name, u.sex, u.address from user u "+
我需要定义一个JPA查询,转换为:
SELECT
*
from
items_table
where
lower(CONCAT(item_id,' ', color,' ',details,' ')) like all ('{"%blue%", "%plastic%"}') and
store='Main' and
status='In Stock' and
item_type='Container';
所有的参数列表都将
我正在尝试通过spring data jpa在MySQL上一次性执行以下查询。
SET @i := 0;
UPDATE tv_episode te SET te.display_episode_no= @i:=@i+1 WHERE te.tv_season_id=season ORDER BY broadcast_date;
我试着在StackOverflow上找到解决这个问题的方法,但是没有找到任何解决方案。
spring-data-jpa中SET @i := 0;的等价物是什么?有没有办法在@Modifying & @Query注释方法中执行语句?
众所周知,我们可以使用join fetch在单个JPQL查询中检索一个实体及其所有子实体。但是,我似乎不能使用原生查询来实现这一点。我去叫[Ljava.lang.Object; cannot be cast to com.myapp.SearchResult。
实际情况是,我有一个具有多个@EntityResult的@SqlResultSetMapping配置,一些相关实体是一对一的。其中一种关系是一对多。它不是JPA设置父子关系,而是每行返回一个对象列表,列表中的每个项目都是一个已定义的实体类型。
你知道如何让它按预期工作吗?有这种情况的例子吗?
在JPA中存在缓存原生sql查询的可能性吗?
我发现:
JPA 2.0缓存API
JPA2.0提供了一组标准查询提示,以允许刷新或绕过缓存。查询提示在两个枚举类CacheRetrieveMode和CacheStoreMode上定义。
查询提示:
javax.persistence.cache.retrieveMode : CacheRetrieveMode
BYPASS : Ignore the cache, and build the object directly from the database result.
USE : Allow the query to use
我有一个这样的存储库
@Repository
public interface LeadRequestRepository extends PagingAndSortingRepository<LeadRequest, UUID> {
@Query(value = "SELECT * FROM lead_request WHERE product IN :products AND current_status in :status", nativeQuery = true)
List<LeadRequest> findLeadReque
我想使用JPA和Postgres执行批量更新。我不能使用merge,因为我正在检查一个不是PK的唯一约束的冲突。我发现,在postgres中,我们现在可以使用ON Conflict功能。因此,基本上我希望在JPA中执行原生查询执行。查询将如下所示:
INSERT INTO user (user_id, display_name )
VALUES('1', 'sg27')
ON CONFLICT (user_id) DO UPDATE
SET display_name = 'sg27' RETURNING *;
我将循环遍历对象列表并
我正在通过JPA进行SQL查询,并获得对象数组列表。我希望将这些对象数组映射到一个bean中。 例如,我的查询给出了以下输出。 List<Object[]> list = // myWorkingJpaQuery;
// list is of length 2.
// Each Object array always holds a Long in index 0,
// a TimeStamp in index 1 and a String in index 2. 我希望将其映射到一个类,而不是读取这些值并执行强制转换,如下所示: class ExampleClass{
我是JPA存储库实现的新手,所以寻求帮助。用于获取列值中包含条件的表项的普通sql查询为:
select * from table t where t.column in('firstvalue','secondvalue','thirdvalue')
有没有与此对应的JPA/CRUD存储库?
对于多对一的关系。
子查询将是:
select * from child_foo where foo_id in(select foo_id from foo where foo_other_value="somevalue")
为此,h
为了简单起见,我想构建一个查询,使其等同于:
select * from user where (name like ? or detail like ?) and age = ?
到目前为止,我尝试了以下几点:
Page<Post> findByNameOrDetailContainingAndAgeEquals(String query, int age, Pageable pageable);
Page<Post> findByNameContainingOrDetailContainingAndAgeEquals(String query, String qu
我们如何为下面的原生查询编写JPA或JPQL查询?参考链接- SQL Oracle - How to make query dynamic to accept multiple days to calculate the expiration SELECT * FROM PASS_EXP
WHERE TRUNC(EXPIRY_DT) IN (
SELECT TRUNC(SYSDATE) + COLUMN_VALUE
FROM TABLE(SYS.ODCINUMBERLIST(1, 3, 5, 7, 15))
); 或 SELECT p.*
FROM PASS_EXP p
INNER
我在MySql数据库上执行的JPA (Eclipselink v.2.1.2)中的聚合和函数有一个问题。我需要对类型为'TIME‘的字段中的值求和。但是,执行的查询返回错误的结果。例如,我有两个值('04:15:00‘和'05:50:00'),结果是96500。查询(JPQL)为:
SELECT SUM(w.timeSpent) FROM WorkingHours w
在JPA中对时间值求和的正确方法是什么?
提前谢谢。
我是Spring Data JPA的新手。我有这个疑问。LOWER函数和CONTAINING(case-insensitive)是必需的。
它工作得很好,如果我使用:
findByCityContainsAndAreaContainsAndType(String city,String area, String type);
使用@Query的原因是我想使用joins。但是('%?1%')似乎有一个问题。不确定如何实现它。
@Query(value=" select * from Agreement where LOWER(city) like LOWER('%
我正在尝试将以下查询转换为原生查询,当查询返回2个元组时,我得到的是空列表 以下是查询: SELECT
s.id AS shopID,
s.shop_name AS shopName
FROM
shop s
WHERE s.shop_name LIKE '%store%' ; 下面是我创建的方法,它返回空列表,而它应该发送一个包含两个对象的列表(这是m存储库的方法) @Query(value = "SELECT \n" +
" s.id AS shopID,\n" +
我有一个表,在那里我需要基于两列获取行,并在order by one column的帮助下找到顶部记录。
---------------------------------------------------------------------
id product_id sub_product_id created_dttm
---------------------------------------------------------------------
1 1 2 01-
我正在使用jersey spring jpa和hibernate以及mysql db。在这里我遇到了一些问题错误:-创建在类路径资源applicationContext.xml中定义的名为'entityManagerFactory‘的bean。我浪费了过去的3天,但是我找不到问题的解决方法。请在这个问题上指导我。
package com.mind.rest;
@Controller
@Path("/payment")
public class PaymentService {
@Autowired
TransactionBo transactionB