2

Lift JPA を使用しようとしていますが、Model を参照すると、スーパー コンストラクターが呼び出され、例外が発生します。

object Model extends LocalEMF("LiftPersistenceUnit") with RequestVarEM

問題は、例外がこの例外の背後に隠されていることです。

java.lang.NoClassDefFoundError: Could not initialize class...

だから、私の質問は次のとおりです。この場合、例外をログに記録/処理する最良の方法は何ですか?

または、Lift JPA を使用する別のパターンを推奨できる人はいますか? モデルがコード化された方法は推奨される方法ですが、あまりユーザーフレンドリーな IMO ではありません。アイデアは、リクエスト variable.sc を介してアクセスできるシングルトン エンティティ マネージャー ファクトリを持つことです。

4

1 に答える 1

4

LocalEMFのコンストラクターの前に何かを実行する唯一の方法を考えることができます。

class Model(val init: Unit = println("Hai")) 
  extends LocalEMF("LiftPersistenceUnit") with RequestVarEM

LocalEMF("LiftPersistenceUnit")への呼び出しをプロキシし、特別なトリックを使用して、例外に適切なログを追加することができるかもしれません。

編集

見つけた:

class LocalEMF(haha: String) { val e = throw new RuntimeException }
trait RequestVarEM

class Model(val init: Unit = println("Hai")) extends { val e = 
  try new LocalEMF("LiftPersistenceUnit") catch {
    case t: Throwable => println("Catched: " + t); throw t
  } 
} with RequestVarEM
于 2013-01-01T23:10:18.917 に答える