You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near



  • That's a mistake.

    2021-11-06 17:40:30.376 ERROR 4584 --- [legram Executor] o.h.engine.jdbc.spi.SqlExceptionHelper   : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'interval, keyword, last_search_date, name, platform_id, state, user_id) values (' at line 1
    

    Full error:

    Hibernate: insert into search (creation_date, interval, keyword, last_search_date, name, platform_id, state, user_id) values (?, ?, ?, ?, ?, ?, ?, ?)
    2021-11-06 17:40:30.376 WARN 4584 --- [legram Executor] o.h.engine.jdbc.spi.SqlExceptionHelper : SQL Error: 1064, SQLState: 42000
    2021-11-06 17:40:30.376 ERROR 4584 --- [legram Executor] o.h.engine.jdbc.spi.SqlExceptionHelper : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'interval, keyword, last_search_date, name, platform_id, state, user_id) values (' at line 1
    2021-11-06 17:40:30.380 ERROR 4584 --- [legram Executor] o.t.t.u.DefaultBotSession : could not execute statement

    org.hibernate.exception.SQLGrammarException: could not execute statement
    at org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:63) ~[hibernate-core-5.4.30.Final.jar:5.4.30.Final]
    at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:42) ~[hibernate-core-5.4.30.Final.jar:5.4.30.Final]
    at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:113) ~[hibernate-core-5.4.30.Final.jar:5.4.30.Final]
    at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:99) ~[hibernate-core-5.4.30.Final.jar:5.4.30.Final]
    at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:200) ~[hibernate-core-5.4.30.Final.jar:5.4.30.Final]
    at org.hibernate.dialect.identity.GetGeneratedKeysDelegate.executeAndExtract(GetGeneratedKeysDelegate.java:57) ~[hibernate-core-5.4.30.Final.jar:5.4.30.Final]
    at org.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:43) ~[hibernate-core-5.4.30.Final.jar:5.4.30.Final]
    at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:3195) ~[hibernate-core-5.4.30.Final.jar:5.4.30.Final]
    at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:3801) ~[hibernate-core-5.4.30.Final.jar:5.4.30.Final]
    at org.hibernate.action.internal.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:84) ~[hibernate-core-5.4.30.Final.jar:5.4.30.Final]
    at org.hibernate.engine.spi.ActionQueue.execute(ActionQueue.java:645) ~[hibernate-core-5.4.30.Final.jar:5.4.30.Final]
    at org.hibernate.engine.spi.ActionQueue.addResolvedEntityInsertAction(ActionQueue.java:282) ~[hibernate-core-5.4.30.Final.jar:5.4.30.Final]
    at org.hibernate.engine.spi.ActionQueue.addInsertAction(ActionQueue.java:263) ~[hibernate-core-5.4.30.Final.jar:5.4.30.Final]
    at org.hibernate.engine.spi.ActionQueue.addAction(ActionQueue.java:317) ~[hibernate-core-5.4.30.Final.jar:5.4.30.Final]
    at org.hibernate.event.internal.AbstractSaveEventListener.addInsertAction(AbstractSaveEventListener.java:330) ~[hibernate-core-5.4.30.Final.jar:5.4.30.Final]
    at org.hibernate.event.internal.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:287) ~[hibernate-core-5.4.30.Final.jar:5.4.30.Final]
    at org.hibernate.event.internal.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:193) ~[hibernate-core-5.4.30.Final.jar:5.4.30.Final]
    at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:123) ~[hibernate-core-5.4.30.Final.jar:5.4.30.Final]
    at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:194) ~[hibernate-core-5.4.30.Final.jar:5.4.30.Final]
    at org.hibernate.event.internal.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:38) ~[hibernate-core-5.4.30.Final.jar:5.4.30.Final]
    at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:179) ~[hibernate-core-5.4.30.Final.jar:5.4.30.Final]
    at org.hibernate.event.internal.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:32) ~[hibernate-core-5.4.30.Final.jar:5.4.30.Final]
    at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:75) ~[hibernate-core-5.4.30.Final.jar:5.4.30.Final]
    at org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:93) ~[hibernate-core-5.4.30.Final.jar:5.4.30.Final]
    at org.hibernate.internal.SessionImpl.fireSave(SessionImpl.java:636) ~[hibernate-core-5.4.30.Final.jar:5.4.30.Final]
    at org.hibernate.internal.SessionImpl.save(SessionImpl.java:629) ~[hibernate-core-5.4.30.Final.jar:5.4.30.Final]
    at org.hibernate.internal.SessionImpl.save(SessionImpl.java:624) ~[hibernate-core-5.4.30.Final.jar:5.4.30.Final]
    at org.kasad0r.bot.MySQL.HibernateUtil.insert(HibernateUtil.java:36) ~[main/:na]
    at org.kasad0r.bot.MyBot.onUpdateReceived(MyBot.java:155) ~[main/:na]
    at java.util.ArrayList.forEach(ArrayList.java:1257) ~[na:1.8.0_202]
    at org.telegram.telegrambots.meta.generics.LongPollingBot.onUpdatesReceived(LongPollingBot.java:27) ~[telegrambots-meta-5.3.0.jar:na]
    at org.telegram.telegrambots.updatesreceivers.DefaultBotSession$HandlerThread.run(DefaultBotSession.java:317) ~[telegrambots-5.3.0.jar:na]
    Caused by: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'interval, keyword, last_search_date, name, platform_id, state, user_id) values (' at line 1
    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120) ~[mysql-connector-java-8.0.25.jar:8.0.25]
    at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) ~[mysql-connector-java-8.0.25.jar:8.0.25]
    at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:953) ~[mysql-connector-java-8.0.25.jar:8.0.25]
    at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1092) ~[mysql-connector-java-8.0.25.jar:8.0.25]
    at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1040) ~[mysql-connector-java-8.0.25.jar:8.0.25]
    at com.mysql.cj.jdbc.ClientPreparedStatement.executeLargeUpdate(ClientPreparedStatement.java:1348) ~[mysql-connector-java-8.0.25.jar:8.0.25]
    at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdate(ClientPreparedStatement.java:1025) ~[mysql-connector-java-8.0.25.jar:8.0.25]
    at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:197) ~[hibernate-core-5.4.30.Final.jar:5.4.30.Final]
    ... 27 common frames omitted

    SQL request:

    sql запрос

    I think there's a mistake.

    at org.kasad0r.bot.MySQL.HibernateUtil.insert(HibernateUtil.java:36) ~[main/:na]
    at org.kasad0r.bot.MyBot.onUpdateReceived(MyBot.java:155) ~[main/:na]

    Method insert:

      public static int insert(DataEntity entity) {
    Session session = getSessionFactory().openSession();
    session.beginTransaction();
    int id = (Integer) session.save(entity);
    session.getTransaction().commit();
    session.close();
    return id;
    }

    int id = (Integer) session.save(entity); a mistake.

           searchEntity.setDayInterval(Integer.parseInt(msg.getText()));
    //sendMsg("Sucess", msg.getChatId());
    searchEntity.setUserByUserId(HibernateUtil.selectUser("from UserEntity where id = " + msg.getFrom().getId()).get(0));
    int id = HibernateUtil.insert(searchEntity);
    searchEntity.setId(id);

    int id = HibernateUtil.insert(searchEntity); Maybe a problem in the method, but I don't know.

    Method SearchEntity:

    package org.kasad0r.bot.MySQL;

    import javax.jws.soap.SOAPBinding;
    import javax.persistence.*;
    import java.sql.Date;

    @Entity
    @Table(name = "search", schema = "bot")
    public class SearchEntity extends DataEntity {
    private int id;
    private String name;
    private Date creationDate;
    private Date lastSearchDate;
    private String keyword;
    private Integer dayInterval;
    private byte state;
    private PlatformEntity platformByPlatformId;
    private UserEntity userByUserId;

    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    @Column(name = "id", nullable = false)
    public int getId() {
        return id;
    }
    
    public void setId(int id) {
        this.id = id;
    }
    
    @Basic
    @Column(name = "name", nullable = true, length = 100)
    
    public String getName() {
        return name;
    }
    
    public void setName(String name) {
        this.name = name;
    }
    
    @Basic
    @Column(name = "creation_date", nullable = false)
    public Date getCreationDate() {
        return creationDate;
    }
    
    public void setCreationDate(Date creationDate) {
        this.creationDate = creationDate;
    }
    
    @Basic
    @Column(name = "last_search_date", nullable = true)
    public Date getLastSearchDate() {
        return lastSearchDate;
    }
    
    public void setLastSearchDate(Date lastSearchDate) {
        this.lastSearchDate = lastSearchDate;
    }
    
    @Basic
    @Column(name = "keyword", nullable = false, length = 100)
    public String getKeyword() {
        return keyword;
    }
    
    public void setKeyword(String keyword) {
        this.keyword = keyword;
    }
    
    @Basic
    @Column(name = "interval", nullable = true)
    public Integer getDayInterval() {
        return dayInterval;
    }
    
    public void setDayInterval(Integer dayInterval) {
        this.dayInterval = dayInterval;
    }
    
    @Basic
    @Column(name = "state", nullable = false)
    public byte getState() {
        return state;
    }
    
    public void setState(byte state) {
        this.state = state;
    }
    
    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
    
        SearchEntity that = (SearchEntity) o;
    
        if (id != that.id) return false;
        if (state != that.state) return false;
        if (name != null ? !name.equals(that.name) : that.name != null) return false;
        if (creationDate != null ? !creationDate.equals(that.creationDate) : that.creationDate != null) return false;
        if (lastSearchDate != null ? !lastSearchDate.equals(that.lastSearchDate) : that.lastSearchDate != null) return false;
        if (keyword != null ? !keyword.equals(that.keyword) : that.keyword != null) return false;
        if (dayInterval != null ? !dayInterval.equals(that.dayInterval) : that.dayInterval != null) return false;
    
        return true;
    }
    
    @Override
    public int hashCode() {
        int result = id;
        result = 31 * result + (name != null ? name.hashCode() : 0);
        result = 31 * result + (creationDate != null ? creationDate.hashCode() : 0);
        result = 31 * result + (lastSearchDate != null ? lastSearchDate.hashCode() : 0);
        result = 31 * result + (keyword != null ? keyword.hashCode() : 0);
        result = 31 * result + (dayInterval != null ? dayInterval.hashCode() : 0);
        result = 31 * result + (int) state; return result;
    
    
    }
    
    
    @ManyToOne
    @JoinColumn(name = "platform_id", referencedColumnName = "id", nullable = false)
    public PlatformEntity getPlatformByPlatformId() {
        return platformByPlatformId;
    }
    
    public void setPlatformByPlatformId(PlatformEntity platformByPlatformId)
    {
        this.platformByPlatformId = platformByPlatformId;
    }
    
    @ManyToOne
    @JoinColumn(name = "user_id", referencedColumnName = "id", nullable = false)
    public UserEntity getUserByUserId() {
        return userByUserId;
    }
    
    public void setUserByUserId(UserEntity userByUserId) {
        this.userByUserId = userByUserId;
    }
    

    }



  • Caused by: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'interval, keyword, last_search_date, name, platform_id, state, user_id) values (' at line 1 at com.mysql.cj.jdbc.exceptions. SQLError.createSQLException(SQLError.java:120) ~[mysql-connector-java-8.0.25.jar:8.0.25]

    Reserved keywords at MySQL should be taken back to synthaxis.

    @Column(name = "`interval`", nullable = true)
    


Suggested Topics

  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2