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.
Vois ici. http://iciql.com/
· Version Java ... 8 ・ Version de iciql ... iciql-2.2.1 -Pilote SQLite jdbc ... sqlite-jdbc-3.8.11.2.jar
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;
}
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;
}
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;
}
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