2016-07-19 22 views
0

Wir sind dabei, unsere Play-Framework-Anwendung von 2.3.10 auf 2.4.8 zu aktualisieren und damit von Ebean 3.x auf 4.6.2 zu aktualisieren.javax.persistence Anmerkungen fehlende optionale Elemente?

Ich sehe jetzt Kompilierungsfehler, dass einige Annotationen Felder fehlen. Beide Versionen von Eban hängen von der Version 1.0 von ab.

Das Merkwürdige ist, dass IntelliJ die Annotationen als fehlende optionale Elemente anzeigt, aber das Javadoc für die Annotation erwähnt das optionale Element. Beachten Sie, dass Kompilation nicht auch in

Zum Beispiel, hier ist die Quelle, die IntelliJ zeigt für javax.persistence.UniqueConstraint:

/** 
* This annotation is used to specify that a unique constraint 
* is to be included in the generated DDL for a primary or secondary table. 
* 
* <pre> 
* Example: 
* &#064;Entity 
* &#064;Table(
*  name="EMPLOYEE", 
*  uniqueConstraints= 
*   &#064;UniqueConstraint(columnNames={"EMP_ID", "EMP_NAME"}) 
* ) 
* public class Employee { ... } 
* </pre> 
* 
* @since Java Persistence 1.0 
*/ 
@Target({TYPE}) 
@Retention(RUNTIME) 

public @interface UniqueConstraint { 

    /** (Required) An array of the column names that make up the constraint. */ 
    String[] columnNames(); 
} 
+0

Welche "optionalen" Elemente? Sie zeigen JPA 1.0 an. Sie benötigen JPA 2.0 oder JPA 2.1. Nehmen Sie das spätere JPA-API-Jar auf, integrieren Sie es in Ihren Build, und Sie sehen alle Annotationsattribute für spätere Versionen von JPA –

+0

. Siehe auch JPA javadocs, das sehr deutlich sagt, dass "name" in JPA 2.0 https://docs.oracle.com hinzugefügt wurde /javaee/7/api/javax/persistence/UniqueConstraint.html#name-- –

+0

Ah, ich verstehe. Das ist merkwürdig; etwas muss zuvor JPA 2.x importiert haben. Das löst es trotzdem. Vielen Dank! – evanjdooner

Antwort

1

Sie sind zur Zeit JPA 1.0 (in der Build-Prozess irgendwo, und was IDEA zeigt Ihnen) verwenden. Das Attribut "name" von UniqueConstraint annotation wurde in JPA 2.0 eingeführt. Sie müssen den Aufbau von IDEA ändern, um JPA 2.0 zu verwenden.