実現したいこと
Employee EntityのフィールドであるbossIdをもとにテーブル結合し上司情報を取得したい
前提
Spring boot で従業員情報を保存するEntityを作成中です。
Employee entity には BranchId,DepartmentIdなどがありそれらは
https://qiita.com/wataru908/items/f30332d48917c38220d5
こちらのリンクに書いてあることをまねたらうまく
部署情報、支社情報を取得できました。
発生している問題・エラーメッセージ
部署情報などを取得するのと同じようにBossIdから上司情報を取得
しようとしたのですがうまくいきません。
BossIdは上司に該当するEmployeeのEmpIdが入っています。
該当のソースコード
Java
1 2/** 3 * MST_EmployeeのENTITY 4 */ 5@Entity 6@Table(name = "MST_Employee") 7@Getter 8@Setter 9@Data 10public class MST_Employee implements Serializable { 11 12 private static final long serialVersionUID = 4211189331000162686L; 13 14 /** 従業員ID */ 15 @Id 16 @GeneratedValue(strategy = GenerationType.IDENTITY) 17 @Column(name = "empId") 18 private int empId; 19 20 /** 支店ID */ 21 @ManyToOne 22 @JoinColumn(name = "branchid") 23 private MST_Branch branch; 24 25 @Column(name = "branchId") 26 private int branchId; 27 28 /** 部署ID */ 29 @ManyToOne 30 @JoinColumn(name = "departmentid") 31 private MST_Department department; 32 33 @Column(name = "departmentId") 34 private int departmentId; 35 36 /** 従業員No */ 37 @Column(name = "empNo") 38 private int empNo; 39 /** 従業員名 */ 40 @Column(name = "fullName", nullable = false) 41 @NotBlank(message = "フルネームは必須です") 42 private String fullName; 43 /** 従業員かな */ 44 @Column(name = "kanaName", nullable = false) 45 @NotBlank(message = "名前の読みは必須です") 46 private String kanaName; 47 /** ログインID */ 48 @Column(name = "loginId", nullable = false) 49 @NotBlank(message = "LOGINIDは必ず設定してください") 50 private String loginId; 51 /** パスワード */ 52 @Column(name = "password", nullable = false) 53 @NotBlank(message = "PASSWORDは必ず設定してください") 54 private String password; 55 /** 有効無効 */ 56 @Column(name = "enable", nullable = false) 57 private boolean enable; 58 /** メールアドレス */ 59 @Column(name = "email", nullable = false) 60 private String email; 61 /** 権限 */ 62 @Column(name = "userRole") 63 private String userRole; 64 /** パスワード更新日時 */ 65 @Column(name = "pwupDay") 66 private Timestamp pwupDay; 67 68 69 /** 上司ID これをもとに上司情報を取得しbossに格納できるようにしたい*/ 70 @ManyToOne 71 @JoinColumn(name = "bossid") 72 private MST_Employee boss; 73 74 @Column(name = "bossId") 75 private int bossId; 76} 77 78//部署ENTITY結合の例 79/** 80 * MST_Departmentのentity 81 */ 82public class MST_Department implements Serializable { 83 84 @Id 85 @GeneratedValue(strategy = GenerationType.IDENTITY) 86 @Column(name = "departmentId", nullable = false) 87 /** 部署ID */ 88 private int departmentId; 89 @Column(name = "rowNo", nullable = false) 90 /** 列番号 */ 91 private int rowNo; 92 @Column(name = "departmentName", nullable = false) 93 /** 部署名 */ 94 private String departmentName; 95 96 /** 従業員所属情報 */ 97 @OneToMany(mappedBy = "department", cascade = CascadeType.ALL) 98 private List<MST_Employee> employee; 99} 100 101
試したこと
上司,部下の関係から
@ManyToOneタグや@OneToOneを使用してみたがうまくいかない。
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。