IDテーブルとパスワードテーブルを分けてテーブルを行いログイン認証をJava Spring bootで行う方法がわかりません。

よろしくお願いします。Springを使い始めて1ヶ月です。

Spring bootでログイン画面を作成したいと思っています。
--以下やりたいこと--

ユーザテーブル
u_id user_id user_name
1 A001 take
2 A002 yamada

パスワードテーブル
p_id password
1 123456
2 123456

ユーザIDとパスワードを登録するテーブルを分けたいです。
分けず同じテーブルで参照して認証は可能でしたが、分けるとSpring boot でのテーブル結合の仕方がわかりませんでした。
repository内に@Query()を記載してそこにINNER JOINを記載したいです。方法はありますか?
以下ユーザIDとパスワードを同じテーブルで記載した場合のログイン機能を記載します。

Controller

@Controller public class FrontController { @Autowired UserRepository userRepository; PassRepository passRepository; @RequestMapping(path = "/", method = RequestMethod.GET) public ModelAndView login(ModelAndView mav) { mav.setViewName("login"); return mav; } @RequestMapping(path = "/login", method = RequestMethod.POST) public ModelAndView loginCheck(@RequestParam("loginId") Integer id, @RequestParam("password") String password, ModelAndView mav) { Usersample usertable = userRepository.findByIdAndPassword(id,password); if(usertable == null) { mav.addObject("message", "登録失敗"); }else { mav.addObject("message", "登録完了"); } mav.setViewName("result"); return mav; } }

Entity

@Data @Table(value="usersample") public class Usersample { @Id @Column(value="user_id") private Integer id; @Column(value="password") private String password; }

repository

public interface UserRepository extends CrudRepository<Usersample,String>{ Usersample findByIdAndPassword(Integer id ,String password); //ここに@Query文を記載したい }

login.html

result

<!doctype html> <html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8" /> <title>Login Result</title> </head> <body> <h1 th:text="${message}"></h1> </body> </html>

コメントを投稿

0 コメント