hql 相关问题

使用此标记来解决有关“Hibernate查询语言”(HQL)的问题,这是Hibernate和NHibernate使用的查询语言。有关Hive查询语言的问题,请使用标签[hiveql]。

如何更改分区列的数据类型?

在这里输入图片描述 考虑我有下表: 创建外部表 sales ( 身份证, 名称字符串, 金额翻倍 ) 分区方式(CITY INT); 在上表中,当我尝试更改...

回答 1 投票 0

如何在HQL中多次使用同一个关联?

我将 Java 与 Spring Boot 一起使用,尤其是 Spring Data JPA。 在现有数据库中, 有2张表A和B B 有一个指向 A 的外键。 在我的代码中, 我有两个实体 @Table(...

回答 0 投票 0

Springboot 在一次查询中填充 DTO 类

我有一个管理用户、用户配置文件和角色的 springboot 应用程序 一个用户只能有一个配置文件(我想要一个单向关系,我只需要从用户导航 - >用户配置文件) 一个

回答 0 投票 0

(Hibernate HQL 更新查询)org.hibernate.hql.internal.ast.QuerySyntaxException: expecting EOF, found ','

HQL 查询使用多个参数更新表,同时搜索旧参数进行更新 休眠配置文件 HQL 查询使用多个参数更新表,同时搜索旧参数进行更新 hibernate.cfg.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="connection.url">jdbc:mysql://localhost:3306/database</property> <property name="dialect">org.hibernate.dialect.MySQLDialect</property> <property name="connection.username">root</property> <property name="connection.password">root</property> <property name="current_session_context_class">thread</property> <property name="show_sql">true</property> <property name="connection.pool_size">4</property> </session-factory> </hibernate-configuration> 休眠代码: import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; import org.hibernate.query.Query; servlet method { SessionFactory factory = new Configuration() .configure("hibernate.cfg.xml") .addAnnotatedClass(BollyWood.class) .addAnnotatedClass(HollyWood.class) .buildSessionFactory(); Session se = factory.getCurrentSession(); try { se.beginTransaction(); String query1 = "update hollywood set " + "name = :m_name ," + "timing = :m_timing ," + "price = :m_price " + "where name = :mname ," + "timing = :mtiming ," + "price = :mprice"; // Generating error for `,` separating different parameters Query query = se.createQuery(query1); query.setParameter("m_name", m_name); query.setParameter("m_timing", m_timing); query.setParameter("m_price", m_price); query.setParameter("mname", mname); query.setParameter("mtiming", mtiming); query.setParameter("mprice", mprice); query.executeUpdate(); } catch (Exception e) { System.out.println(e); } finally { se.close(); factory.close(); } } 运行日志 18-Mar-2023 19:28:37.722 INFO [http-nio-18080-exec-9] org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.stop HHH10001008: Cleaning up connection pool [jdbc:mysql://localhost:3306/database] 18-Mar-2023 19:29:09.594 WARN [http-nio-18080-exec-8] org.hibernate.boot.jaxb.internal.stax.LocalXmlResourceResolver.resolveEntity HHH90000012: Recognized obsolete hibernate namespace http://hibernate.sourceforge.net/hibernate-configuration. Use namespace http://www.hibernate.org/dtd/hibernate-configuration instead. Support for obsolete DTD/XSD namespaces may be removed at any time. 18-Mar-2023 19:29:09.674 WARN [http-nio-18080-exec-8] org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.configure HHH10001002: Using Hibernate built-in connection pool (not for production use!) 18-Mar-2023 19:29:09.674 INFO [http-nio-18080-exec-8] org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.buildCreator HHH10001005: using driver [com.mysql.jdbc.Driver] at URL [jdbc:mysql://localhost:3306/database] 18-Mar-2023 19:29:09.675 INFO [http-nio-18080-exec-8] org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.buildCreator HHH10001001: Connection properties: {user=root, password=****} 18-Mar-2023 19:29:09.675 INFO [http-nio-18080-exec-8] org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.buildCreator HHH10001003: Autocommit mode: false 18-Mar-2023 19:29:09.676 INFO [http-nio-18080-exec-8] org.hibernate.engine.jdbc.connections.internal.PooledConnections.<init> HHH000115: Hibernate connection pool size: 4 (min=1) 18-Mar-2023 19:29:09.684 INFO [http-nio-18080-exec-8] org.hibernate.dialect.Dialect.<init> HHH000400: Using dialect: org.hibernate.dialect.MySQLDialect 18-Mar-2023 19:29:09.740 INFO [http-nio-18080-exec-8] org.hibernate.hql.internal.QueryTranslatorFactoryInitiator.initiateService HHH000397: Using ASTQueryTranslatorFactory 18-Mar-2023 19:29:09.746 ERROR [http-nio-18080-exec-8] org.hibernate.hql.internal.ast.ErrorCounter.reportError line 1:95: expecting EOF, found ',' 18-Mar-2023 19:29:09.746 ERROR [http-nio-18080-exec-8] org.hibernate.hql.internal.ast.ErrorCounter.reportError line 1:95: expecting EOF, found ',' line 1:95: expecting EOF, found ',' java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: expecting EOF, found ',' near line 1, column 95 [update hollywood set name = :m_name ,timing = :m_timing ,price = :m_price where name = :mname ,timing = :mtiming ,price = :mprice] at antlr.Parser.match(Parser.java:211) at org.hibernate.hql.internal.antlr.HqlBaseParser.statement(HqlBaseParser.java:215) at org.hibernate.hql.internal.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:284) at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:186) at org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:141) at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:115) at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:77) at org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:153) at org.hibernate.internal.AbstractSharedSessionContract.getQueryPlan(AbstractSharedSessionContract.java:553) at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:662) at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:103) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.hibernate.context.internal.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:355) at com.sun.proxy.$Proxy31.createQuery(Unknown Source) at com.example.AdminChangeServlet.doGet(AdminChangeServlet.java:61) at javax.servlet.http.HttpServlet.service(HttpServlet.java:670) at javax.servlet.http.HttpServlet.service(HttpServlet.java:779) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:177) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:891) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1784) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:750) 18-Mar-2023 19:29:09.838 INFO [http-nio-18080-exec-8] org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.stop HHH10001008: Cleaning up connection pool [jdbc:mysql://localhost:3306/database] 罐子: hibernate-search-5.8.0.Final 和 mysql-connector-java-5.1.14 尝试过: 1.在一个 Hibernate 查询中更新多个列? StackOverflow 问题, 2.QuerySyntaxException 在“where”语句中你不能使用逗号。 您的代码: String query1 = "update hollywood set " + "name = :m_name ," + "timing = :m_timing ," + "price = :m_price " + "where name = :mname ," + "timing = :mtiming ," + "price = :mprice"; 所以它会转化为 update hollywood set name = :m_name ,timing = :m_timing ,price = :m_price **where** name = :mname AND timing = :mtiming AND price = :mprice 注意中间的 where 关键字。 所以,如果你想更新名称、时间和价格where name is mname AND timing = mtiming AND price = mprice 你应该更改为以下内容: String query1 = "update hollywood set " + "name = :m_name ," + "timing = :m_timing ," + "price = :m_price " + "where name = :mname AND " + "timing = :mtiming AND " + "price = :mprice"; 这将转化为: 更新好莱坞集名称 = :m_name ,timing = :m_timing ,price = :m_price where name = :mname AND timing = :mtiming AND price = :mprice 注意:AND关键字后面的空格很重要

回答 1 投票 0

如何过滤列与值匹配的 SQL 选择查询,或者如果未找到辅助默认值

假设我有一个事件表: id bigint NOT NULL 主键, tenant_id CHARACTER VARYING(50) NOT NULL, 名称 CHARACTER VARYING(100) NOT NULL, 代码字符变化(50)不为空, 唯一(代码,

回答 1 投票 0

How to resolve org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: for near line 1

例如我的hql: select (select stuff((select ', ' + usrProd.product.externalId from UserProductsVO usrProd where usrProd.user.id = u.id for xml path('')), 1,1, '')) as productIds 来自用户...

回答 0 投票 0

并非所有命名参数都已设置:[:date] hibernate [duplicate]

我正在使用 hibernate 从 java 运行 SQL,并尝试将数据直接转换为 List。 但是我遇到了以下错误。 org.hibernate.QueryException:并非所有命名参数都有... 我正在使用 hibernate 从 java 运行 SQL,并尝试将数据直接转换为 List<Object>. 但是我遇到了以下错误。 org.hibernate.QueryException:并非所有命名参数都已设置:[:date] select CASE WHEN (cast (p.jsonstring AS json) ->> 'expiryDate') IS NOT NULL THEN ((cast (p.jsonstring AS json) ->> 'expiryDate') ::date) ELSE (asoc.creationdate +(cast (cast (p.jsonstring AS json) ->> 'validity' as INTEGER ) * interval '1 days')) END as ExpiryDate from table1 as p; 我正在使用下面的 Java 语句 query = currentSession().createSQLQuery(sql); list = LangUtils.cast(query.list()); 您的查询包含:date,它被解释为命名参数。 在查询定义和执行之间,您没有设置此参数,因此您会收到错误消息。 决定是否需要更改查询字符串或设置参数。如果是后者,添加一行 query.setParameter("date", ...);

回答 1 投票 0

通过Hibernate从SQL数据库中获取随机对象。

我有以下MySql依赖代码(ORDER BY RAND())。我想知道,如果有hibernate HQL替代它(管理员是布尔标签,表明该用户作为一个管理员)。这是...

回答 2 投票 3

不知道对象实现的HQL Fetch Join

我有一些性能问题,我试图添加一些fetch join来获取一些数据,只需一个请求。我的问题是。我得到了一个映射对象AbstractObject。而且我还得到了其他的映射对象,比如......

回答 1 投票 0

表在HQL查询中没有被映射

我的类的开头是 @实体 @Table(name = "validate_info", catalog = "company") @JsonIdentityInfo(generator=ObjectIdGenerators.IntSequenceGenerator.class, property="@id") public class ValidateInfo ...

回答 1 投票 0

在HQL中用where子句删除查询

我是一个新的hql,并试图删除完整的行的情况下,根据电子邮件的匹配。以下是我试过的方法。仍然得到一个持久性异常。 public void unsubscribeEmailList(...)

回答 3 投票 0

如何设置beeline在连接字符串中使用变量?

目前在我们的开发环境中,我们已经将beeline的连接字符串硬编码为类似beeline -u 'jdbc:hive2:/zk0-hi-clu.3qy32mhqlj1ubaea5iyw5joamf.ax.internal.cloudapp.net:2181,zk1-...

回答 1 投票 2

Grails组查询在Mysql中有效,但在SQLServer中失败

我正在使用Grails,我有这样一个查询,当我使用MySql的时候可以正常工作,但是当我使用SQL Server的时候就失败了 def list = Ticket.executeQuery("select t.expertice from Ticket t where t......"。

回答 1 投票 -3

HQL更新列与COUNT

我正在使用Hibernate从而HQL,链接到PostgreSQL数据库。我有一个用户表和一个团队表,通过表teams_users的ManyToMany条件连接。我想...

回答 1 投票 0

一个用户两个角色的输出

我有两个实体User和Role,它们有一个单向的ManyToMany连接。它们有一个单向的ManyToMany连接。但是当调用User列表时,由于某些原因,User被返回了好几次,有好几个角色。下面我...

回答 1 投票 2

Create partition on a date

I need to create an external hive table on top of a csv file. CSV is having col1, col2, col3 and col4. But my external hive table should be partitioned on month but my csv file doesn't have any month ...

回答 1 投票 1

在Apache Hive中转换为YYYY-MM-DD HH:MIN:SEC的日期格式。

我正在从一个csv文件中加载数据到一个hive表中。文件中有一个名为last_updated_date的字段,其值的格式为 "202700412013000771+0000"。我需要把它覆盖成 "YYYY-MM-DD HH:MIN:SEC"......。

回答 1 投票 -1

在Apache Hive中转换为YYYY-MM-DD HH:MIN:SEC的日期格式。

我正在从一个csv文件中加载数据到一个hive表中。文件中有一个名为last_updated_date的字段,其值的格式为 "202700412013000771+0000"。我需要把它覆盖成 "YYYY-MM-DD HH:MIN:SEC"......。

回答 1 投票 -1

[21000][1242]子查询返回多于1条的记录

我的查询: entityManager.createQuery("SELECT" + "q.id, " + "q.title, " + "q.user.fullName, " + "q.user.reputationCount, " + ...

回答 1 投票 -1

将Arraylist传递给SQL查询以获得所需的结果。

我写了这样一个查询:select agent_id,count(id) as agentCount from demo.table lst where lst.agent_id in(:idpList) group by agent_id order by agentCount ASC;但这只返回agent_id...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.