teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

注釈のパラメーター

2018/02/17 10:38

投稿

退会済みユーザー
answer CHANGED
@@ -26,7 +26,7 @@
26
26
  @Column
27
27
  String name
28
28
 
29
- @Column
29
+ @Column(name="role_id")
30
30
  int roleId
31
31
  ```
32
32
 

2

アノテーションについての補足を追記

2018/02/17 10:38

投稿

退会済みユーザー
answer CHANGED
@@ -6,4 +6,69 @@
6
6
  insertable = false はインサートしないデータ
7
7
  updatable = false はアップデートしないデータ
8
8
  insertable = true はインサートするデータ
9
- updatable = true はアップデートするデータ
9
+ updatable = true はアップデートするデータ
10
+
11
+ ### アノテーションの補足
12
+
13
+ #### users
14
+ | column | type |
15
+ |:--------|:------------|
16
+ | id | int |
17
+ | name | varchar(255)|
18
+ | role_id | int |
19
+
20
+ ##### 実装のケース
21
+
22
+ ```
23
+ @Column
24
+ int id
25
+
26
+ @Column
27
+ String name
28
+
29
+ @Column
30
+ int roleId
31
+ ```
32
+
33
+
34
+
35
+ ```
36
+ @Column
37
+ int id
38
+
39
+ @Column
40
+ String name
41
+
42
+ @JoinColumn(name="role_id")
43
+ Role role
44
+ ```
45
+
46
+ は作成されたテーブルの構造(FK 除く)は同一になります。
47
+ なので
48
+
49
+ ```
50
+ @Column
51
+ int id
52
+
53
+ @Column
54
+ String name
55
+
56
+ @Column
57
+ int roleId
58
+
59
+ @JoinColumn(name="role_id")
60
+ Role role
61
+ ```
62
+
63
+ と実装すると
64
+
65
+ ```
66
+ CREATE TABLE users (
67
+ int id primary key
68
+ name text,
69
+ role_id int,
70
+ role_id int
71
+ )
72
+ ```
73
+
74
+ の解釈になってしまうため、この項目は参照用だよって明示してあげる必要があります。

1

設定値の意味追加

2018/02/17 10:37

投稿

退会済みユーザー
answer CHANGED
@@ -1,3 +1,9 @@
1
1
  `@Column` と `@JoinColumn` 両方定義した場合にどっちから更新したらいいかわからないから参照のみの設定にしてください
2
2
 
3
- ということ
3
+ ということ
4
+
5
+ ### 設定値の意味
6
+ insertable = false はインサートしないデータ
7
+ updatable = false はアップデートしないデータ
8
+ insertable = true はインサートするデータ
9
+ updatable = true はアップデートするデータ