在没有ID的Hibernate中查找对象

时间:2018-11-17 09:33:35

标签: java spring hibernate jpa

我正在使用Spring。 我有一个用户表。

一个人登录系统后,会向我发送他的凭据(即用户名和密码)。

我使用“增量生成的uid”(即userid是主键)将用户存储在数据库中。

我还将用户名密码等存储在数据库中。我需要做的是,当用户连接到Rest连接时,我需要检查数据库是否有该用户。如果他存在,那么我需要检查密码是否匹配。我需要按用户名而不是uid进行检查

我的程序中根本没有会话或任何内容(或者据我所知,我根本没有在代码中编写任何会话或sessionfactory)

我的存储库类:

public interface UserRepository extends JpaRepository<User, Long>{
}

我的用户DAO

@Service
public class UserDAO {

    @Autowired
    UserRepository userRepository;

    public User findByUsername(String username)
    {
        //what to write here

    }
}

我已经抬起this solution,但如上所述,我没有参加会议。

1 个答案:

答案 0 :(得分:0)

Spring确实提供了您所需的所有必需的依赖关系和功能。

回到您的问题。您只需提供一个存储库,然后在其中使用带有某种命名约定的Signatures来提供适当的结果,即可轻松地在Spring中查询非id字段。

您可以注入EntityManager,它也可以使用Session t来访问@PersistenceContex,这将注入由Spring管理的共享EntityManager

此外,您可以通过UserRepository(或其中的任何子元素)扩展Repository来使用Naming Convention Thingy,就像您已经在做的那样,并提供方法签名,例如findBy<FIELDNAME>(String value) ,例如。 findByUsername(String username)

如果您确实使用存储库方法,则无需实施DAO。

有关详细说明,请查看Spring的Reference Documentation