google-app-engine中的限制?

时间:2009-08-29 00:41:53

标签: google-app-engine jpa

是否可以在google-app-engine中使用约束?似乎不起作用...... http://www.datanucleus.org/products/accessplatform_1_1/jpa/orm/constr ...

属性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 个答案:

答案 0 :(得分:2)

简而言之,不,他们不是。基础数据存储区实现不支持全局事务,因此强制执行任意唯一性约束是不切实际的。

解决方法是使唯一组件成为密钥名称的一部分。

答案 1 :(得分: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;
}