こんにちは。
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
の自動採番が利用できないと取れますが、本当に不可能なのでしょうか?
エラーの解決策、自動採番不可であれば代替ソリューションを提供してくださるとありがたいです。
以下、アプリに関する情報です。
名前 | バージョン | |
---|---|---|
言語 | Java | 8 |
O/Rマッパー | org.seasar.doma.boot | 1.1.1 |
DBMS | MySQL | 8.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]
と表示されるのならわかるのですが...
回答2件
あなたの回答
tips
プレビュー