2009-08-29 69 views
2

est-il possible d'utiliser des contraintes dans le google-app-engine? Il semble ne pas fonctionner ...Contraintes dans google-app-engine?

Les propriétés codant le système et le code doivent être uniques. Existe-t-il une solution de contournement ?

@Entity 
@Table(uniqueConstraints = { 
    @UniqueConstraint(columnNames = { "codingSystem", "code" }) }) 
public class ArticleCode { 

    @Id 
    @GeneratedValue(strategy = GenerationType.IDENTITY) 
    private Key id; 

    private String codingSystem; 

    private String code; 

Merci, Ralph

Répondre

2

En un mot, non, ils ne sont pas. L'implémentation de banque de données sous-jacente ne prend pas en charge les transactions globales, il n'est donc pas pratique d'imposer des contraintes d'unicité arbitraires.

La solution consiste à inclure les composants uniques dans le nom de la clé.

2

Merci beaucoup, cela fonctionne très bien.

Voici mon nouveau code.

@Entity public class {Code de l'article

@Id 
private Key id; 

@Column(name="codingSystem") 
private String codingSystem; 

@Column(name="code") 
private String code; 

public ArticleCode(Key parent, String codingSystem, String code) { 
    this.id = KeyFactory.createKey(parent, ArticleCode.class.getSimpleName(), codingSystem + code); 
    this.codingSystem = codingSystem; 
    this.code = code; 
} 
Questions connexes