Profile.java
java
1//profileテーブルとマッピングさせる 2 3package com.example.konkatsu.domain; 4 5import java.sql.Date; 6 7import javax.persistence.Entity; 8import javax.persistence.FetchType; 9import javax.persistence.GeneratedValue; 10import javax.persistence.Id; 11import javax.persistence.JoinColumn; 12import javax.persistence.ManyToOne; 13import javax.persistence.Table; 14 15import lombok.AllArgsConstructor; 16import lombok.Data; 17import lombok.NoArgsConstructor; 18 19@Data 20@NoArgsConstructor //デフォルトコンストラクタも必要な場合 21@AllArgsConstructor //すべてのフィールドを引数に持つコンストラクタを自動生成 22@Entity //エンティティ(一単位として扱われるデータのまとまり)であることを示す。指定したクラス名がテーブルとマッピングされる 23@Table(name = "profile") //接続するテーブルを指定 24//@ToString(exclude = "users") //Userクラスには対応するProfileクラスのフィールドを追加 25public class Profile { 26 @Id //主キー 27 @GeneratedValue //自動採番される 28 private Integer id; 29 private Integer genderId; 30 private String name; 31 private Date birthday; 32 private Integer height; 33 private Integer occupationId; 34 private Integer income; 35 private String text; 36 private byte[] image; 37 @ManyToOne(fetch = FetchType.LAZY) //@ManyToOneで多対1の関係にする 38 @JoinColumn(nullable = true, name = "user_id") //外部キーのカラム名の指定 39 private User user; 40} 41
User.java
java
1package com.example.konkatsu.domain; 2 3import java.util.List; 4 5import javax.persistence.CascadeType; 6import javax.persistence.Entity; 7import javax.persistence.FetchType; 8import javax.persistence.GeneratedValue; 9import javax.persistence.Id; 10import javax.persistence.OneToMany; 11import javax.persistence.Table; 12 13import lombok.AllArgsConstructor; 14import lombok.Data; 15import lombok.NoArgsConstructor; 16import lombok.ToString; 17 18@Data //getterメソッド・setterメソッドをコード上に直接書かなくて済む 19@NoArgsConstructor 20@AllArgsConstructor 21@Entity //JPAに管理してもらう 22@Table(name = "users") //接続するテーブルを指定 23@ToString(exclude = "profile") 24public class User { 25 26 @Id //変数idをプライマリーキーに指定 27 @GeneratedValue //自動採番される 28 private Integer userId; 29 private String mail; 30 private String pass; 31 @OneToMany(fetch = FetchType.EAGER, cascade= CascadeType.ALL, mappedBy = "user" ) //Usersとprofileを1対多の関係にするため@OneToManyをつけるcascade = CascadeType.ALLを設定することでUserの操作をprofileにも伝播できる 32 private List<Profile> profile; 33 34}
これで実行すると
コンパイルは問題なく通るのですが
http://localhostでアクセスすると
org.postgresql.util.PSQLException: ERROR: column profile0_.id does not exist
とidがありませんという様な
エラーが出てしまいます
マッピングのやり方が間違っていると思うのですが
どうしても解決できません
アドバイスがありましたらお願いいたします
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/07/05 04:31
2017/07/05 04:32
2017/07/05 04:36 編集
2017/07/05 04:39
2017/07/05 04:39
2017/07/05 04:47
2017/07/05 04:54
2017/07/05 05:16
2017/07/05 06:05