2017-04-03 41 views
0

MySQLで複合キーを作成しました。テーブルはActionNoteCodeで、複合キーはフィールドaction_note_codecollectionで構成されています。私はcompound key in ebean and play frameworkの例に従った。EbeanとPlayFrameworkの複合キー

クラスActionNoteCodeコード:

@Entity 
public class ActionNoteCode extends Model { 
    @EmbeddedId 
    public ActionNoteCodeIndex id; 
    String description = ""; 

    @Embeddable 
    class ActionNoteCodeIndex { 
     String acvtion_note_code; 
     String collection; 
    } 
} 

プレイは、それが次のエラースローを開始すると:

ebean.default="models.*" 

Cannot register class [models.prospector.actionNote.ActionNoteCode$ActionNoteCodeIndex] in Ebean server 

これは、あなたがモデルフォルダ/パッケージを使用していることを示しているが

完全なスタックトレースは次のとおりです。

play.api.Configuration$$anon$1: Configuration error[Cannot register class [models.prospector.actionNote.ActionNoteCode$ActionNoteCodeIndex] in Ebean server] 
    at play.api.Configuration$.configError(Configuration.scala:156) 
    at play.api.Configuration.reportError(Configuration.scala:809) 
    at play.Configuration.reportError(Configuration.java:368) 
    at play.db.ebean.DefaultEbeanConfig$EbeanConfigParser.addModelClassesToServerConfig(DefaultEbeanConfig.java:107) 
    at play.db.ebean.DefaultEbeanConfig$EbeanConfigParser.parse(DefaultEbeanConfig.java:82) 
    at play.db.ebean.DefaultEbeanConfig$EbeanConfigParser.get(DefaultEbeanConfig.java:56) 
    at play.db.ebean.DefaultEbeanConfig$EbeanConfigParser.get(DefaultEbeanConfig.java:40) 
    at com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:81) 
    at com.google.inject.internal.BoundProviderFactory.provision(BoundProviderFactory.java:72) 
    at com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:61) 
Caused by: java.lang.VerifyError: Bad type on operand stack 
Exception Details: 
Location: 
models/prospector/actionNote/ActionNoteCode$ActionNoteCodeIndex.<init>(Lmodels/prospector/actionNote/ActionNoteCode;)V @2: invokevirtual 
Reason: 
    Type uninitializedThis (current frame, stack[0]) is not assignable to 'models/prospector/actionNote/ActionNoteCode$ActionNoteCodeIndex' 
Current Frame: 
bci: @2 
flags: { flagThisUninit } 
locals: { uninitializedThis, 'models/prospector/actionNote/ActionNoteCode' } 
stack: { uninitializedThis, 'models/prospector/actionNote/ActionNoteCode' } 
Bytecode: 
0x0000000: 2a2b b600 202a b700 232a bb00 2559 2ab7 
0x0000010: 0028 b500 2ab1       
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Class.java:348) 
    at play.db.ebean.DefaultEbeanConfig$EbeanConfigParser.addModelClassesToServerConfig(DefaultEbeanConfig.java:105) 
    at play.db.ebean.DefaultEbeanConfig$EbeanConfigParser.parse(DefaultEbeanConfig.java:82) 
    at play.db.ebean.DefaultEbeanConfig$EbeanConfigParser.get(DefaultEbeanConfig.java:56) 
    at play.db.ebean.DefaultEbeanConfig$EbeanConfigParser.get(DefaultEbeanConfig.java:40) 
    at com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:81) 
    at com.google.inject.internal.BoundProviderFactory.provision(BoundProviderFactory.java:72) 
    at com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:61) 
    at com.google.inject.internal.BoundProviderFactory.get(BoundProviderFactory.java:62) 
+0

ここに完全なスタックトレースがあります。 – Chet

+0

あなたのクラスを静的にしようとすると、 'public static class ActionNoteCodeIndex' – pedroct92

答えて

0

1-クラスを静的にするようにしてください。public static class ActionNoteCodeIndex

2 - 動作しない場合は、クラスActionNoteCodeIndexを分離したファイルに移動します。私はebeanがそれらを使うためにファイルをスキャンするので違いがあると思います。