Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用hibernate从表中获取用户id_Hibernate_Spring Mvc - Fatal编程技术网

如何使用hibernate从表中获取用户id

如何使用hibernate从表中获取用户id,hibernate,spring-mvc,Hibernate,Spring Mvc,我试图从一个表中获取一个值,但在那里出现了错误 让我考虑一个简单的SQL语法。< /P> 从电子邮件地址所在的tbl_名称中选择idabc@gmail.com'; 现在我想要一个使用hibernate返回用户id的方法 这是我到目前为止所做的尝试 public int getIdByEmail(String email) { session = sessionFact.openSession(); Query query = session.createQuery("SELEC

我试图从一个表中获取一个值,但在那里出现了错误

让我考虑一个简单的SQL语法。< /P>


从电子邮件地址所在的tbl_名称中选择idabc@gmail.com';

现在我想要一个使用hibernate返回用户id的方法

这是我到目前为止所做的尝试

public int getIdByEmail(String email) {
    session = sessionFact.openSession();
    Query query = session.createQuery("SELECT u.user_id FROM tbl_user u WHERE u.email=:emailParam");
    query.setParameter("emailParam", email);
    return (int) query.uniqueResult();
}
User.java

    @Entity
@Table(name = "tbl_user", catalog = "lifestyle", schema = "")
@NamedQueries({
    @NamedQuery(name = "User.findAll", query = "SELECT u FROM User u")
    , @NamedQuery(name = "User.findByUserId", query = "SELECT u FROM User u WHERE u.userId = :userId")
    , @NamedQuery(name = "User.findByFullName", query = "SELECT u FROM User u WHERE u.fullName = :fullName")
    , @NamedQuery(name = "User.findByAddress", query = "SELECT u FROM User u WHERE u.address = :address")
    , @NamedQuery(name = "User.findByContact", query = "SELECT u FROM User u WHERE u.contact = :contact")
    , @NamedQuery(name = "User.findByGender", query = "SELECT u FROM User u WHERE u.gender = :gender")
    , @NamedQuery(name = "User.findByDob", query = "SELECT u FROM User u WHERE u.dob = :dob")
    , @NamedQuery(name = "User.findByEmail", query = "SELECT u FROM User u WHERE u.email = :email")
    , @NamedQuery(name = "User.findByPassword", query = "SELECT u FROM User u WHERE u.password = :password")
    , @NamedQuery(name = "User.findByActive", query = "SELECT u FROM User u WHERE u.active = :active")
    , @NamedQuery(name = "User.findByCreatedDate", query = "SELECT u FROM User u WHERE u.createdDate = :createdDate")})
public class User implements Serializable {

    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)

    @Column(name = "user_id")
    private Integer userId;

    @NotNull
    @Size(min = 1, max = 256)
    @Column(name = "full_name")
    private String fullName;
    @Size(max = 256)
    @Column(name = "address")
    private String address;
    @Size(max = 30)
    @Column(name = "contact")
    private String contact;
    @Size(max = 10)
    @Column(name = "gender")
    private String gender;
    @Column(name = "dob")
    @Temporal(TemporalType.DATE)
    private Date dob;
    // @Pattern(regexp="[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?", message="Invalid email")//if the field contains email address consider using this annotation to enforce field validation

    @NotNull
    @Size(min = 1, max = 256)
    @Column(name = "email")
    private String email;

    @NotNull
    @Size(min = 1, max = 256)
    @Column(name = "password")
    private String password;

    @NotNull
    @Column(name = "active", insertable = false)
    private short active;
    @Column(name = "created_date", insertable = false)
    @Temporal(TemporalType.TIMESTAMP)
    private Date createdDate;
错误是
我们需要在查询中使用实体名和属性,而不是表名和列名。因此,下面的查询:

Query Query=session.createQuery(“从tbl\u user u中选择u.user\u id 其中u.email=:emailParam“

应该是

Query Query=session.createQuery(“从用户u中选择u.userId,其中 u、 email=:emailParam“


它返回什么?@JohnJoe-向我展示了一个错误,为什么要使用不推荐使用的专有标准API而不是非常简单的标准JPQL查询呢?@NishanDhungana如果您不发布错误,我们无法告诉您为什么会生成错误。错误伴随类型、消息和堆栈跟踪而来。它们都是用来阅读的,并且都给出了错误的宝贵指示。@JBNizet-我已经更新了我的问题,请看一看,我想你使用的是
SELECT u.userId…
,但应该是
SELECT u.userId…
。用户实体中的属性名称。