JPA中是否已经支持处理JSON字段的查询,如下所示:
select * from person where (info ->> 'age')::numeric = 40;
select * from person where info ->> 'firstName'= 'Cabalo';
我正在使用hibernate 5(位于spring-data-jpa之后)和Postgres 9.4
我正在使用Spring Data JPA。我正在使用规范化的DB,这意味着,为了获得我想要的全部细节,我必须连接许多表。如您所知,JPA根据查询生成方法名。但是,由于多个连接,我的方法名变得很长。有时超过250个字符。我正在寻找带有JPA方法的@query注解,而不是自动生成的JPA方法名称。我想知道如果我使用@query注解会带来什么性能影响?此外,请建议任何替代方案来解决我的长方法名,同时考虑到性能。
我使用了spring data jpa和hibernate作为jpa持久化提供者。
我在我的应用程序中使用原生查询。有一些更新查询,我想获得执行更新查询时更新的实际记录数。在spring data jpa中有没有办法做到这一点?
我目前正在遵循下面的方法;
@Modifying
@Query(value="update table x set x_provision = ?1 where x_id = ?2", nativeQuery=true)
int updateProvision(Integer provision, Integer id);
在服务层添加@Transac
我正在尝试通过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注释方法中执行语句?
在我们的项目中,我们使用了spring data jpa (我真的很喜欢),但是当涉及到小的查找表时,我在想,使用spring jdbc (自己编写查询)而不是jpa会不会更有优势。考虑只有10行2列数据的25个独立查找表(它们之间没有关系)。在这里,我们必须创建25个存储库,25个实体,所以内存中的50个bean只需执行一个操作(获取所有查找数据).With jdbc,我们可以编写25个方法来查询这些表。那么,纯粹从性能的角度来看,在这种情况下,jdbc的性能是否比spring data jpa更好?但如前所述,我更倾向于spring data jpa,因为它的代码更少。有没有办法减少sp
有谁能告诉我@Query注释将支持DB独立查询机制吗?
示例:
public interface UserRepository extends JpaRepository<User, Long> {
@Query("select u from User u where u.firstname like %?1")
List<User> findByFirstnameEndsWith(String firstname);
}
如果我编写这个查询,它会支持Mysql、oracle、postgres等所有DB吗?
我在spring参考文档站点中发现
我使用spring-data-jpa运行本机postgres查询。查询是对实体的jsonb数据执行的。我可以在db服务器上成功地运行原始查询:
SELECT e.*
FROM public.entity e where e.json ? 'salary' and e.json ->> 'salary' > '10000';
但是,由于spring-data-jpa也支持参数化查询的?,所以在查询的语法中似乎存在冲突,因此应用程序最终甚至无法启动。
@Query(value = "select e.* from Enti
我正在使用postgres,在postgres和其他DBMS中使用JPA和Hibernate可以做到这一点:
SELECT *, function(parameter) AS xyz FROM table WHERE condition
我的问题是,查询可以显示一个额外的字段(xyz),尽管没有这样的列。我可以用Hibernate JPA做到这一点。
我想使用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 *;
我将循环遍历对象列表并
我有一个记录在一个列中的值“非常好的宝马4轮驱动i5”。
如果我提供了这个值的子字符串,我如何查询才能找到它呢?假设我想通过提供这个"BMW i5“来找到它?
如果我使用LIKE方法,那么它期望单词按顺序排列。
@Query("SELECT p FROM Product p WHERE p.name LIKE CONCAT('%',:name,'%')")
我正在使用spring boot和Spring DATA。数据库是postgres。
如果我用这个查询搜索Postgres上的字符串,我可以找到它,所以问题是如何使用Spring数据:
我的dockerfile和docker-compose连接到我的postgres (容器)有问题。这是我的错误Connection to localhost:5432 refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections. 这是我的属性 spring.datasource.url=jdbc:postgresql://postgres-db:5432/offer
spring.datasource.username=postgre
org.springframework.core.convert.ConverterNotFoundException: No converter found capable of converting from type [org.springframework.data.jpa.repository.query.AbstractJpaQuery$TupleConverter$TupleBackedMap] to type [com.example.dto.ExampleDto]
at org.springframework.core.convert.support.GenericConve
我正在尝试为postgres数据库设置一个使用spring-data-jpa的db查询和一个原生查询。但以下方法不起作用。为什么?
@Query(value = "SELECT reltuples::bigint AS estimate FROM pg_class WHERE oid = 'public.my_table'::regclass", nativeQuery = true)
public int count();
结果:
java.lang.IllegalArgumentException: org.hibernate.QueryException:
我尝试连接我的spring boot应用程序和位于docker容器中的PostgreSQL。当我启动docker-compose时,docker使用我在此文件中设置的用户创建一个容器和数据库。在这里之前一切都很好。
但是当我尝试连接我的spring应用程序和这个容器时,我得到了这个错误:
org.postgresql.util.PSQLException: FATAL: authentification par mot de passe échouée pour l'utilisateur « postgres » (pgjdbc: autodetected server-encod
我正在处理一个Spring-Boot应用程序,JPA在板上,数据库在Postgres中。
当前的目标是从一个表中检索条目,以及从另一个表中检索一些聚合的统计信息。
在传统的SQL中,我会使用LEFT JOIN (子查询)语句,如下所示:
SELECT d.*, stats.avg_salary
FROM departments d
LEFT JOIN
(SELECT e.dep_id, avg(e.salary) AS avg_salary
FROM employees e
GROUP BY e.dep_id) stats
ON (d.id = stats.dep_id)
现在我需
我使用了spring boot和spring data jpa。我也在使用hibernate envers,我需要访问AuditReaderFactory才能编写审计查询。
因为它是一个spring boot和spring data jpa,所以一切都是自动配置的。所以当我这么做的时候,
@Autowired
AuditReaderFactory auditReaderFactory;
它不起作用。我得到以下错误。
org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of typ