[JAVA] Précautions lors de la génération d'une table avec une clé composite avec Iciql + SQLite

introduction

Lorsque j'ai créé une table à partir d'un modèle avec une combinaison Iciql + SQLite, j'ai eu du mal à définir une clé primaire composite, donc je vais partager des informations.

À propos d'Iciql

Vois ici. http://iciql.com/

Version etc.

· Version Java ... 8 ・ Version de iciql ... iciql-2.2.1 -Pilote SQLite jdbc ... sqlite-jdbc-3.8.11.2.jar

Conclusion

Définissez la clé de déchiffrement comme suit. (Définissez le nom du champ connecté par des virgules dans primaryKey)

@IQTable(name = "model", primaryKey= "field1,field2" )
public class Model {
	
	@IQColumn(name = "field1")
	public String field1;
	
	@IQColumn(name = "field2")
	public int field2;
	
	@IQColumn(name = "value")
	public String value;

}

Mauvais exemple 1

Quand j'ai fait cela, la clé primaire a été définie uniquement dans field2. (Définissez le nom du champ dans la primaryKey comme un tableau)

@IQTable(name = "model", primaryKey={"field1","field2"} )
public class Model {
	
	@IQColumn(name = "field1")
	public String field1;
	
	@IQColumn(name = "field2")
	public int field2;
	
	@IQColumn(name = "value")
	public String value;

}

Mauvais exemple 2

Là encore, la clé primaire a été définie uniquement dans field2. (Défini sur true pour chaque primaryKey de @IQColumn)

@IQTable(name = "model")
public class Model {
	
	@IQColumn(name = "field1", primaryKey=true)
	public String field1;
	
	@IQColumn(name = "field2", primaryKey=true)
	public int field2;
	
	@IQColumn(name = "value")
	public String value;

}

À propos d'autres DB

Avec postgres (*), les deux mauvais exemples 1 et 2 ci-dessus fonctionnent comme prévu. Nous n'avons pas vérifié d'autres bases de données.

*) La version postgres est 9.6 et le pilote jdbc utilise postgresql-9.4.1211.jar.

Recommended Posts

Précautions lors de la génération d'une table avec une clé composite avec Iciql + SQLite
Précautions lors de l'écriture d'un programme: 3e partie
Précautions lors du remplacement des guillemets par gsub
Précautions lors de la création de PostgreSQL avec docker-compose
[Java] Précautions lors de la comparaison de chaînes de caractères avec des chaînes de caractères