java - session.get() 在 hibernate 状态下返回 null

标签 java mysql database hibernate session

我正在使用 hibernate 和 mysql,我可以通过 hibernate 将数据放入数据库,但是当我尝试检索数据时,它总是返回 null...

Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
User user = (User) session.get(User.class, username);
session.getTransaction().commit();

User 是一个带有注释的类,但是变量 user 将始终为 null,即使我将我知道的用户名放入数据库中也是如此。 username是表的ID,应该能找到

编辑

难道我用<property name="hbm2ddl.auto">create</property>在配置中?我应该使用什么,以便数据库仅在表不存在时才创建表?

最佳答案

创建模式选项将删除所有现有数据!
查看文档:here

以下是指定的选项:

  • validate:验证架构,但不对数据库进行任何更改。
  • 更新:更新模式。
  • create:创建模式,销毁之前的数据。
  • create-drop:在 session 结束时删除模式。

尝试使用更新 版本。代码片段的其余部分在我看来没问题。

希望对你有帮助

关于java - session.get() 在 hibernate 状态下返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7947869/

相关文章:

mysqli stat - 打开的表太多不好吗?

php - 如果语句对象未设置,是否需要调用 PDOStatement::closeCursor() ?

php - 在 MySQL 中仅显示与供应商相关的消息

java - 打破开关失败?? java

java - 如何使用java多线程将大文本文件分割成更小的 block

mysql - 在 MySQL 中一次性删除多个表

mysql - 导入 Laravel 项目的 Mysql 数据库

java - vscode coderunner 执行java代码有问题

MOUSE_INPUT_DATA 的 Java 等价物

php - 有没有办法从自定义 worpress 表中获取数据,我的查询获取表中最后更新的项目