2009-08-29 15 views
2

google-app-engineでConstraintsを使用することは可能ですか?それは動作していないようです... http://www.datanucleus.org/products/accessplatform_1_1/jpa/orm/constr ...google-app-engineの制約はありますか?

プロパティcodingSystemとコードは一意でなければなりません。回避策はありますか?

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

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

    private String codingSystem; 

    private String code; 

おかげで、一言で言えば ラルフ

答えて

2

、いや、彼らはありません。基本となるデータストアの実装はグローバルトランザクションをサポートしていないため、任意の一意性制約を実施することは現実的ではありません。

回避策は、固有のコンポーネントをキー名の一部にすることです。

2

ありがとう、それはうまく動作します。

ここに私の新しいコードがあります。

@EntityパブリッククラスArticleCode {

@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; 
}