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

質問編集履歴

4

2022/08/29 08:58

投稿

wawawataru
wawawataru

スコア11

title CHANGED
@@ -1,1 +1,1 @@
1
- createNativeQueryでsetval実行
1
+ [PostgreSQL]シーケンスサイクル確認
body CHANGED
@@ -1,8 +1,7 @@
1
- createNativeQuery「SELECT setval('test_seq", 9999, true)」として、getSingleResultを行ったところ「could not prepare statement 」といエラーが発生し、setvalが見つからないというッセージがコンールに表示されした
1
+ javaシーケンス値のサイクル確認を行うメソッドを考えてい
2
2
 
3
- setvalのはcreateNativeQueryではおこなえないのでしょか?
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
- Function "SETVAL" not found; SQL statement
18
+ Function "SETVAL" not found; SQL statement
19
+ このようなエラーが発生してシーケンスの現在値をずらすことができません。
20
+
21
+ なんとかサイクル確認を行えるメソッドを作りたいのですが、ご助力お願い致します。

3

コード追加

2022/08/29 07:03

投稿

wawawataru
wawawataru

スコア11

title CHANGED
File without changes
body CHANGED
@@ -1,3 +1,19 @@
1
1
  createNativeQueryで「SELECT setval('test_seq", 9999, true)」として、getSingleResultを行ったところ「could not prepare statement 」というエラーが発生し、setvalが見つからないというメッセージがコンソールに表示されました。
2
2
 
3
3
  setvalの実行はcreateNativeQueryではおこなえないのでしょうか?
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

2022/08/29 06:01

投稿

wawawataru
wawawataru

スコア11

title CHANGED
@@ -1,1 +1,1 @@
1
- JUnitを使ったシーケンス値試験
1
+ createNativeQueryでsetval実行
body CHANGED
File without changes

1

2022/08/29 05:55

投稿

wawawataru
wawawataru

スコア11

title CHANGED
File without changes
body CHANGED
@@ -1,5 +1,3 @@
1
- JUnitテストで、PostgreSQLのシーケンスが最大の時にnextvalするこで取得値が1に戻ることの確認ケスを実装いと考えており
1
+ createNativeQuery「SELECT setval('test_seq", 9999, true)」としてgetSingleResult行ったところ「could not prepare statement 」いうエラが発生、setvalが見つからないというメッセージがコンソールに表示されした
2
2
 
3
- すが、プログラムからシーケンス現在値を最大に設定する方法が分りません。
3
+ setvalの実行はcreateNativeQueryはおこなえないでしょう
4
-
5
- すいませんが、どなたかご教授お願い致します。