java - 在 Hibernate 中查找没有 id 的对象
问题描述
我正在使用弹簧。我有一个用户表。
当一个人登录系统时,他会向我发送他的凭据(即用户名和密码)。
我使用“增量生成的 uid”(即 userid 是主键)将我的用户存储在数据库中。
我还将用户名密码等存储在数据库中。我需要做的是,当用户连接到 Rest 连接时,我需要检查数据库是否有这个用户。如果他存在,那么我需要检查密码是否匹配。我需要通过用户名而不是 uid 进行检查
我的程序中根本没有会话或任何东西(或者据我所知,我根本没有在我的代码中编写任何会话或会话工厂)
我的存储库类:
public interface UserRepository extends JpaRepository<User, Long>{
}
我的用户 DAO
@Service
public class UserDAO {
@Autowired
UserRepository userRepository;
public User findByUsername(String username)
{
//what to write here
}
}
我已经查找了这个解决方案,但正如我上面所说,我没有会话。
解决方案
Spring 确实提供了您确实需要的所有必要的依赖项和功能。
回到你的问题。您可以轻松地在 Spring 中查询非 id 字段,只需提供一个 Repository 并在其中提供具有特定命名约定的方法 Signatures 以提供适当的 Result。
您可以使用t 注入由 Spring 管理的shared EntityManager
,这也使您可以访问Session
@PersistenceContex
EntityManager
UserRepository
此外,您可以通过扩展您的from (或它的任何子项)来使用命名约定 Thingy Repository
,就像您已经在做的那样,并提供一个方法签名findBy<FIELDNAME>(String value)
,例如,例如。findByUsername(String username)
.
如果您确实使用存储库方法,则不需要实现 DAO。
详细说明请看 Spring 的参考文档。
推荐阅读
- r - 重写 data.frame 并将值替换为第二个 data.frame 中最接近的值
- mysql - Mysql -h 选项不起作用
- c++ - 编写一个将参数输入到 std::bind 对象向量中的函数
- python - python-lzw 不解压缩较大的 blob
- python - opname 如何/在哪里填充?
- amazon-s3 - 使用邮递员的 AWS S3 预签名 URL 上传图像
- javascript - Reactjs - 列表中自定义组件的键
- mysql - mySQLi 检查 parent_category 是否匹配 category_id = 0
- java - 关于 WorkManager 的 WorkerResult 的 RETRY 值
- javascript - FullCalendar 重复事件无法正常工作