Mysql 如何从hibernate获取特定列存储过程
我正在尝试使用hibernate通过存储过程从MYSQL数据库中获取用户详细信息。我得到: org.hibernate.exception.sqlgrammareexception:无法执行查询 原因:java.sql.SQLException:未找到“创建时间”列 在MYSQL数据库中,我为create_time采用了时间戳数据类型Mysql 如何从hibernate获取特定列存储过程,mysql,hibernate,stored-procedures,Mysql,Hibernate,Stored Procedures,我正在尝试使用hibernate通过存储过程从MYSQL数据库中获取用户详细信息。我得到: org.hibernate.exception.sqlgrammareexception:无法执行查询 原因:java.sql.SQLException:未找到“创建时间”列 在MYSQL数据库中,我为create_time采用了时间戳数据类型 为什么? 我的存储过程 DELIMITER $$; DROP PROCEDURE IF EXISTS `BIM`.`getUserDetailsSP`$$ C
为什么? 我的存储过程
DELIMITER $$;
DROP PROCEDURE IF EXISTS `BIM`.`getUserDetailsSP`$$
CREATE DEFINER=`mariadb`@`%` PROCEDURE `getUserDetailsSP`(IN in_email VARCHAR(255))
BEGIN
SELECT UserID, a.UserTypeID, b.UserTypeName,firstname,lastname,phone
FROM BIM.UserDetailsV a
JOIN BIM.UserTypeDetailsV b ON a.UserTypeID = b.UserTypeID
WHERE a.email = in_email;
END$$
DELIMITER ;$$
休眠
try{
Session session = sessionFactory.openSession();
Query query = session.createSQLQuery(
"CALL getUserDetailsSP(:email)")
.addEntity(UserDTO.class)
.setParameter("email", "bob@gmail.com");
List result = query.list();
for(int i=0; i<result.size(); i++){
UserDTO stock = (UserDTO)result.get(i);
System.out.println(stock.getFirstName());
}
}catch (HibernateException e) {
e.printStackTrace();
}
请添加UserDTO的代码。在mysql db中,我为create_timeCheck使用了timestamp数据类型。如果在过程的select语句中添加create_time,会发生什么:
select UserID,a.UserTypeID,b.UserTypeName,firstname,lastname,phone,创建\u time FROM…
然后电子邮件列未找到我已尝试buddyHibernate尝试从返回的结果集中映射实体中的所有列。因此,实体中标记为@Column的所有字段都必须出现在存储过程的select子句中。请添加UserDTO的代码。在mysql db中,我为create_timeCheck使用了timestamp数据类型。如果在过程的select语句中添加create_time,会发生什么:select UserID,a.UserTypeID,b.UserTypeName、firstname、lastname、phone、create_time FROM…
然后电子邮件列未找到我已尝试buddyHibernate尝试从返回的结果集中映射实体中的所有列。因此,实体中标记为@Column的所有字段都必须出现在存储过程的select子句中。
public class UserDTO implements Serializable{
@Id
@GenericGenerator(name = "j", strategy = "increment")
@GeneratedValue(generator = "j")
@Column(name = "UserID")
private long userID;
@Column(name = "UserTypeID")
private long userTypeID;
@Column(name = "firstname")
private String firstName;
@Column(name = "lastname")
private String lastName;
@Column(name = "email")
private String email;
@Column(name = "phone")
private String phone;
@Column(name = "password")
private String password;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "create_time")
private Date create_time;
@Column(name = "update_time")
private Date update_time;
// getters and setters
}