使用此标记来解决有关“Hibernate查询语言”(HQL)的问题,这是Hibernate和NHibernate使用的查询语言。有关Hive查询语言的问题,请使用标签[hiveql]。
在这里输入图片描述 考虑我有下表: 创建外部表 sales ( 身份证, 名称字符串, 金额翻倍 ) 分区方式(CITY INT); 在上表中,当我尝试更改...
我将 Java 与 Spring Boot 一起使用,尤其是 Spring Data JPA。 在现有数据库中, 有2张表A和B B 有一个指向 A 的外键。 在我的代码中, 我有两个实体 @Table(...
我有一个管理用户、用户配置文件和角色的 springboot 应用程序 一个用户只能有一个配置文件(我想要一个单向关系,我只需要从用户导航 - >用户配置文件) 一个
(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关键字后面的空格很重要
如何过滤列与值匹配的 SQL 选择查询,或者如果未找到辅助默认值
假设我有一个事件表: id bigint NOT NULL 主键, tenant_id CHARACTER VARYING(50) NOT NULL, 名称 CHARACTER VARYING(100) NOT NULL, 代码字符变化(50)不为空, 唯一(代码,
例如我的hql: select (select stuff((select ', ' + usrProd.product.externalId from UserProductsVO usrProd where usrProd.user.id = u.id for xml path('')), 1,1, '')) as productIds 来自用户...
并非所有命名参数都已设置:[: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", ...);
我有以下MySql依赖代码(ORDER BY RAND())。我想知道,如果有hibernate HQL替代它(管理员是布尔标签,表明该用户作为一个管理员)。这是...
我有一些性能问题,我试图添加一些fetch join来获取一些数据,只需一个请求。我的问题是。我得到了一个映射对象AbstractObject。而且我还得到了其他的映射对象,比如......
我的类的开头是 @实体 @Table(name = "validate_info", catalog = "company") @JsonIdentityInfo(generator=ObjectIdGenerators.IntSequenceGenerator.class, property="@id") public class ValidateInfo ...
我是一个新的hql,并试图删除完整的行的情况下,根据电子邮件的匹配。以下是我试过的方法。仍然得到一个持久性异常。 public void unsubscribeEmailList(...)
目前在我们的开发环境中,我们已经将beeline的连接字符串硬编码为类似beeline -u 'jdbc:hive2:/zk0-hi-clu.3qy32mhqlj1ubaea5iyw5joamf.ax.internal.cloudapp.net:2181,zk1-...
Grails组查询在Mysql中有效,但在SQLServer中失败
我正在使用Grails,我有这样一个查询,当我使用MySql的时候可以正常工作,但是当我使用SQL Server的时候就失败了 def list = Ticket.executeQuery("select t.expertice from Ticket t where t......"。
我正在使用Hibernate从而HQL,链接到PostgreSQL数据库。我有一个用户表和一个团队表,通过表teams_users的ManyToMany条件连接。我想...
我有两个实体User和Role,它们有一个单向的ManyToMany连接。它们有一个单向的ManyToMany连接。但是当调用User列表时,由于某些原因,User被返回了好几次,有好几个角色。下面我...
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 ...
在Apache Hive中转换为YYYY-MM-DD HH:MIN:SEC的日期格式。
我正在从一个csv文件中加载数据到一个hive表中。文件中有一个名为last_updated_date的字段,其值的格式为 "202700412013000771+0000"。我需要把它覆盖成 "YYYY-MM-DD HH:MIN:SEC"......。
在Apache Hive中转换为YYYY-MM-DD HH:MIN:SEC的日期格式。
我正在从一个csv文件中加载数据到一个hive表中。文件中有一个名为last_updated_date的字段,其值的格式为 "202700412013000771+0000"。我需要把它覆盖成 "YYYY-MM-DD HH:MIN:SEC"......。
我的查询: entityManager.createQuery("SELECT" + "q.id, " + "q.title, " + "q.user.fullName, " + "q.user.reputationCount, " + ...
我写了这样一个查询: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...