Ограничения в google-app-engine? - PullRequest
2 голосов
/ 29 августа 2009

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

Свойства codingSystem и code должны быть уникальными. Есть ли обходной путь?

@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 голосов
/ 31 августа 2009

Спасибо большое, все отлично работает.

Вот мой новый код.

@ 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;
}
2 голосов
/ 29 августа 2009

Короче говоря, нет, это не так. Базовая реализация хранилища данных не поддерживает глобальные транзакции, поэтому нецелесообразно применять произвольные ограничения уникальности.

Обходной путь - сделать уникальные компоненты частью имени ключа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...