質問編集履歴
4
あ
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
[PostgreSQL]シーケンスのサイクル確認
|
test
CHANGED
@@ -1,8 +1,7 @@
|
|
1
|
-
|
1
|
+
javaでシーケンス値のサイクル確認を行うメソッドを考えています。
|
2
2
|
|
3
|
-
setvalの
|
3
|
+
setvalでシーケンスの現在値を最大に設定し、その後nextvalを行うことでサイクル確認できないかと思い下記のようなコードを書きました。
|
4
4
|
|
5
|
-
↓実際のコード
|
6
5
|
```
|
7
6
|
@Autowired
|
8
7
|
private EntityManager entityManager
|
@@ -14,6 +13,9 @@
|
|
14
13
|
}
|
15
14
|
```
|
16
15
|
|
17
|
-
|
16
|
+
ですが
|
18
17
|
SQLGrammarException: could not prepare statement
|
19
18
|
Function "SETVAL" not found; SQL statement
|
19
|
+
このようなエラーが発生してシーケンスの現在値をずらすことができません。
|
20
|
+
|
21
|
+
なんとかサイクル確認を行えるメソッドを作りたいのですが、ご助力お願い致します。
|
3
コード追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -2,3 +2,18 @@
|
|
2
2
|
|
3
3
|
setvalの実行はcreateNativeQueryではおこなえないのでしょうか?
|
4
4
|
|
5
|
+
↓実際のコード
|
6
|
+
```
|
7
|
+
@Autowired
|
8
|
+
private EntityManager entityManager
|
9
|
+
|
10
|
+
@Test
|
11
|
+
public void test() {
|
12
|
+
Query query = entityManager.createNativeQuery("SELECT setval('test_seq', 9999, true)");
|
13
|
+
query.getSingleResult();
|
14
|
+
}
|
15
|
+
```
|
16
|
+
|
17
|
+
↓エラーメッセージ
|
18
|
+
SQLGrammarException: could not prepare statement
|
19
|
+
Function "SETVAL" not found; SQL statement
|
2
a
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
createNativeQueryでのsetval実行
|
test
CHANGED
File without changes
|
1
あ
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,5 +1,4 @@
|
|
1
|
-
|
1
|
+
createNativeQueryで「SELECT setval('test_seq", 9999, true)」として、getSingleResultを行ったところ「could not prepare statement 」というエラーが発生し、setvalが見つからないというメッセージがコンソールに表示されました。
|
2
2
|
|
3
|
-
で
|
3
|
+
setvalの実行はcreateNativeQueryではおこなえないのでしょうか?
|
4
4
|
|
5
|
-
すいませんが、どなたかご教授お願い致します。
|