質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

Q&A

解決済

2回答

5680閲覧

Doma2でstrategy = GenerationType.IDENTITYが使えない@MySQL

Zeiniku2424

総合スコア8

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

0グッド

0クリップ

投稿2019/04/30 11:09

編集2019/04/30 13:11

こんにちは。
Yuyaと申します。

現在Spring Bootでアプリを作っています。
データベースにMySQL8、O/RマッパーにDoma2を使っていますが以下のエラーが生じて実行できません。

org.seasar.doma.boot.autoconfigure.DomaPersistenceExceptionTranslator$1: [DOMA2021] エンティティ[WorkEntity]のIDプロパティ[id]に自動生成のstrategy[IDENTITY]が指定されていますが、DBMS[standard]ではサポートされていません。; nested exception is org.seasar.doma.jdbc.JdbcException: [DOMA2021] エンティティ[WorkEntity]のIDプロパティ[id]に自動生成のstrategy[IDENTITY]が指定されていますが、DBMS[standard]ではサポートされていません。

エラーメッセージを読む限り、MySQLではidの自動採番が利用できないと取れますが、本当に不可能なのでしょうか?
エラーの解決策、自動採番不可であれば代替ソリューションを提供してくださるとありがたいです。
以下、アプリに関する情報です。

名前バージョン
言語Java8
O/Rマッパーorg.seasar.doma.boot1.1.1
DBMSMySQL8.0.16

java

1// エンティティクラス 2@Entity 3@Table(name = "work") 4@Data 5public class WorkEntity { 6 @Id 7 @GeneratedValue(strategy = GenerationType.IDENTITY) 8 private Integer id; 9 @Size(min = 1, max = 64) 10 private String title; 11}

java

1@ConfigAutowireable 2@Dao 3@Component 4public interface WorkDao { 5 6 // インサートしようとするとエラーが生じる 7 @Insert 8 @Transactional 9 int insert(WorkEntity workEntity); 10}

DDL

1create table if not exists `work` ( 2 `id` int auto_increment primary key, 3 `title` varchar(64) 4)

yml

1spring: 2 datasource: 3 url: jdbc:mysql://localhost/assign 4 username: root 5 password: 6 driverClassName: com.mysql.cj.jdbc.Driver 7 8 doma: 9 dialect: mysql 10 sql-file-repository: no_cache

xml

1<?xml version="1.0" encoding="UTF-8"?> 2<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 3 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4 <modelVersion>4.0.0</modelVersion> 5 <parent> 6 <groupId>org.springframework.boot</groupId> 7 <artifactId>spring-boot-starter-parent</artifactId> 8 <version>2.1.4.RELEASE</version> 9 <relativePath/> <!-- lookup parent from repository --> 10 </parent> 11 <groupId>com.uruk</groupId> 12 <artifactId>assign</artifactId> 13 <version>0.0.1-SNAPSHOT</version> 14 <name>assign</name> 15 <description>Demo project for Spring Boot</description> 16 17 <properties> 18 <java.version>1.8</java.version> 19 </properties> 20 21 <dependencies> 22 <dependency> 23 <groupId>org.springframework.boot</groupId> 24 <artifactId>spring-boot-starter-thymeleaf</artifactId> 25 </dependency> 26 <dependency> 27 <groupId>org.springframework.boot</groupId> 28 <artifactId>spring-boot-starter-web</artifactId> 29 </dependency> 30 31 <dependency> 32 <groupId>mysql</groupId> 33 <artifactId>mysql-connector-java</artifactId> 34 <scope>runtime</scope> 35 </dependency> 36 <dependency> 37 <groupId>org.seasar.doma.boot</groupId> 38 <artifactId>doma-spring-boot-starter</artifactId> 39 <version>1.1.1</version> 40 </dependency> 41 <dependency> 42 <groupId>org.springframework.boot</groupId> 43 <artifactId>spring-boot-starter-jdbc</artifactId> 44 <version>2.1.4.RELEASE</version> 45 </dependency> 46 <dependency> 47 <groupId>org.flywaydb</groupId> 48 <artifactId>flyway-core</artifactId> 49 </dependency> 50 51 <dependency> 52 <groupId>org.projectlombok</groupId> 53 <artifactId>lombok</artifactId> 54 <version>1.18.6</version> 55 <scope>provided</scope> 56 </dependency> 57 58 <dependency> 59 <groupId>org.springframework.boot</groupId> 60 <artifactId>spring-boot-starter-test</artifactId> 61 <scope>test</scope> 62 </dependency> 63 </dependencies> 64 65 <build> 66 <plugins> 67 <plugin> 68 <groupId>org.springframework.boot</groupId> 69 <artifactId>spring-boot-maven-plugin</artifactId> 70 </plugin> 71 </plugins> 72 </build> 73 74</project>

試したこと

WorkEntityインスタンスのidにsetterで値を入力してinsertした場合、正常にテーブルに保存されていました。

疑問点

エラーメッセージ中のDBMS[standard]とは何のことでしょうか?
MySQLを使っているのでDBMS[MySQL]と表示されるのならわかるのですが...

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/04/30 12:57

設定ファイルの問題じゃろ見た感じ
Zeiniku2424

2019/04/30 13:12

閲覧ありがとうございます。 ymlとxmlファイルの内容を追記しました! ご一読の上、ご助言をお願いします。
guest

回答2

0

自己解決

解決しました。
ymlファイルのdomaに関するブロックのインデントが一つ深かった為に正常に認識されなかったようです。
masue101さん、asahina1979さん、ご協力ありがとうございました。

投稿2019/04/30 13:35

Zeiniku2424

総合スコア8

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

パッと気になったのですが、
Dataアノテーションはlombokでしょうか?
domaとlombokは相性悪いので、もしlombokであればDataアノテーションを外して実行してみてください。

投稿2019/04/30 12:44

masue101

総合スコア34

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zeiniku2424

2019/04/30 12:48

回答ありがとうございます! > Dataアノテーションはlombokでしょうか? はい、その通りです。 > もしlombokであればDataアノテーションを外して実行してみてください。 実行してみましたが、依然としてエラーが生じました...( ; ; )
masue101

2019/04/30 12:57

エラー内容は同じですか? @Componentアノテーションも削除してもらっても良いですか?
Zeiniku2424

2019/04/30 13:10

> エラー内容は同じですか? はい、同じ内容です。 > @Componentアノテーションも削除してもらっても良いですか? `@Component`を削除して実行しましたが、結果は変わらないです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問