2009-08-29 5 views
2

Можно ли использовать Ограничения в Google-приложении-движке? Кажется, что не работает ... http://www.datanucleus.org/products/accessplatform_1_1/jpa/orm/constr ...Ограничения в google-app-engine?

Свойства кодированияСистема и код должны быть уникальными. Существует обходное решение ?

@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; 
} 
Смежные вопросы