Hibernate JPA неизвестный столбец в «списке полей» - PullRequest
0 голосов
/ 06 мая 2018

Я пишу приложение Spring boot + Hibernate JPA, и мой код hibernate не работает, ниже приведены подробности

Класс сущности:

@Entity
@Table(name="user")
public class UserBean {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "idUser")
    String id;

    @Column(name = "UserName")
    String name;

    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}

Услуги / DAO:

@Transactional
@Repository
public class SpringBootService {

    @PersistenceContext 
    private EntityManager entityManager;

    public boolean userLogin(UserBean bean) {

        String hql = "FROM UserBean WHERE id = ? ";
        int count = entityManager.createQuery(hql).setParameter(0, bean.getId())
                .getResultList().size();
        return count > 0 ? true : false;
    }

}

и ниже моя таблица

enter image description here

Я получаю следующее исключение

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'userbean0_.id_user' in 'field list'
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_162]

Я проверил имя таблицы и имена столбцов в классе сущности, и все они верны, и это простое отображение, я также не использую вторую таблицу.

Ответы [ 2 ]

0 голосов
/ 07 мая 2018

Модель UserBean не является объектом сущности. Таким образом, вы не можете использовать этот оператор для выполнения

0 голосов
/ 06 мая 2018

попробуйте с этим:

String hql = "FROM UserBean WHERE id = ?1 ";
    int count = entityManager.createQuery(hql).setParameter(1, bean.getId())
            .getResultList().size();

EntityClass:

import javax.persistence.*;
@Entity
@Table(name="user")
public class UserBean {

@Id
@Column(name = "idUser")
String id;

@Column(name = "UserName")
String name;

public String getId() {
    return id;
}
public void setId(String id) {
    this.id = id;
}
public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...