2016-08-03 5 views
0

ich ebean ORM in meinem Java-basierte Spiel Rahmen bin mit und finden Sie mein ModellEinschränkungen in ebean Spiel Rahmen Java nicht in den generierten SQL reflektiert

package models; 

import java.util.*; 
import javax.persistence.*; 

import com.avaje.ebean.annotation.CreatedTimestamp; 
import com.avaje.ebean.annotation.UpdatedTimestamp; 

import play.db.ebean.*; 
import play.data.validation.*; 

@Entity 
@Table(name = "coupons") 
public class Coupon extends com.avaje.ebean.Model { 

    private static final long serialVersionUID = 1L; 

    @Id 
    private Long id; 

    @Constraints.Required 
    @Constraints.MaxLength(80) 
    @Constraints.MinLength(10) 
    private String title; 

    @Constraints.Required 
    @Constraints.MaxLength(1000) 
    @Constraints.MinLength(10) 
    private String description; 

    @Column(name = "created_at") 
    @CreatedTimestamp 
    private Date createdAt; 

    @Column(name = "updated_at") 
    @UpdatedTimestamp 
    private Date updatedAt; 

    @Column(name = "valid_from") 
    private Date validFrom = new Date(); 

    @Column(name = "valid_to") 
    private Date validTo = new Date((long)2147483647*1000); 


} 

generierte SQL-Datei ist

create table coupons (
    id       bigserial not null, 
    title       varchar(255), 
    description     varchar(255), 
    valid_from     timestamp, 
    valid_to      timestamp, 
    created_at     timestamp not null, 
    updated_at     timestamp not null, 
    constraint pk_coupons primary key (id) 
); 

drop table if exists coupons cascade; 

ebean Does Convert die Einschränkungen in SQL-Datei? Wie stelle ich sicher, dass meine Einschränkungen auch in der SQL-Datei enthalten sind?

Antwort

1

Ebean liest keine der Constraint-Anmerkungen von Play.

@Constraints.Required 
@Constraints.MaxLength(80) 

So ist die Required und MaxLength werden nicht gelesen und daher nicht beeinflussen die erzeugte DDL.

Ebean liest die JPA-Anmerkungen und die javax.validation.constraints Anmerkungen @NotNull und @Size. Beispielsweise könnten Sie verwenden:

@NotNull 
@Size(max = 80) 
+0

wo haben Sie diese Informationen gefunden? Ich habe es in der Dokumentation nicht gefunden. – raju

+0

Ich bin der Hauptbotschafter für Ebean. Ich habe den Ebean-Code geschrieben, der diese Anmerkungen liest. –

+0

Wie setze ich Standardwerte in Ebean, so dass das Setzen von Standardwerten auch in der SQL-Datei angezeigt wird? – raju