2016-07-19 3 views
0

私たちはPlayフレームワークアプリケーションを2.3.10から2.4.8にアップグレードし、Ebean 3.xから4.6.2にアップグレードしています。javax.persistenceアノテーションに省略可能な要素がありませんか?

コンパイルエラーが表示され、javax.persistence注釈にフィールドがないことがわかりました。両方のバージョンのEbeanは、バージョン1.0のjavax.persistenceに依存しています。

奇妙なことは、IntelliJが注釈にオプションの要素がないと表示していますが、注釈のJavadocにはオプションの要素が記載されています。そのコンパイルはまた、例えば

に失敗した注意してください、ここでIntelliJのは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

「任意の」要素は何ですか? JPA 1.0を表示します。 JPA 2.0またはJPA 2.1が必要です。後のJPA API jarをビルドに統合し、JPAの後のバージョンのすべてのアノテーション属性を表示 –

+0

JPA javadocも参照してください。JPA 2.0で「名前」が追加されています。https://docs.oracle.com /javaee/7/api/javax/persistence/UniqueConstraint.html#name-- –

+0

ああ、そうです。これはおかしい;これまでJPA 2.xをインポートしていたに違いありません。それはとにかくそれを解決する。ありがとう! – evanjdooner

答えて

1

あなたは現在(どこかにビルドプロセスで、あなたを示して何IDEA)JPA 1.0を使用しています。 UniqueConstraint annotationの「名前」属性はJPA 2.0で導入されました。 JPA 2.0を使用するには、IDEAのビルドを変更する必要があります。

関連する問題