Behaviorクラスのメソッド未定義エラーについて

95 views
Skip to first unread message

末吉博

unread,
Jun 19, 2019, 11:15:59 PM6/19/19
to DBFluteユーザの集い
jfluteさま

お忙しいところ申し訳ありませんが、
お知恵をお借りしたく、よろしくお願いします。

dbflute1.1.9の環境でBehaviorクラスを生成しjarにしました。
当方のアプリケーションはdbflute1.0.0に対応したものでしたので、
import文を修正しました。

この段階で、Eclipse上では
・メソッド deleteNonstrictIgnoreDeleted(THigaiKanri) は型 THigaiKanriBhv で未定義です
・メソッド entityHandling() は型 OutsideSqlAllFacadeExecutor<SOsqlBhv> で未定義です
・メソッド selectByPKValue(int) は型 TTeidenDatagetBhv で未定義です
のようなエラーが大量に発生します。
未定義となっているメソッドはこれ以外にもあり、
エラーになっているメソッド一つに対しBhvクラスは複数あります。

dbflute1.0.0で作成したjarの当該Bhvをみると、メソッドがありました。
これらのメソッドはdbflute1.1.9ではサポートされないものなのでしょうか。
それとも、dbpropの設定を行えば生成されるものでしょうか。
教えてください。よろしくお願いします。

 # 無関係と思いますがdbflute1.0.0はオンプレoracle11g、
 # dbflute1.1.9はクラウドpostgreSQLでやっています。

kubo

unread,
Jun 20, 2019, 12:24:10 AM6/20/19
to DBFluteユーザの集い
jfluteです

末吉さん、こんにちは。DBFluteご利用ありがとうございます。

少々、状況を整理させてください。

> dbflute1.1.9の環境でBehaviorクラスを生成しjarにしました。
> 当方のアプリケーションはdbflute1.0.0に対応したものでしたので、

「もともと dbflute-1.0.0 で実装していたアプリケーションに対して、
dbflute1.1.9で自動生成したBehaviorクラスたちをjarにして、
そのアプリケーションで参照させている」ということになりますでしょうか?

もし、そうであれば、
DBFlute-1.0.x (Java6版) から DBFlute-1.1.x (Java8版) への移行になりますので、
以下のページ用のような移行手順が必要です。

// 移行 1.0.x to 1.1
http://dbflute.seasar.org/ja/environment/upgrade/migration/migrate10xto11x.html

どのみち、まずは DBFlute-1.0.x の最新版 1.0.5N にアップグレードされたほうが良いかと思います。


>  # 無関係と思いますがdbflute1.0.0はオンプレoracle11g、
>  # dbflute1.1.9はクラウドpostgreSQLでやっています。

これ...アプリケーションが二つあるということでしょうか...!?
DBFlute Runtime-1.0.x のアプリに対して、
DBFlute Engine-1.1.x で自動生成されたクラスを使おうとしていたり???

Boo Boo

unread,
Jun 20, 2019, 4:13:52 AM6/20/19
to dbf...@googlegroups.com
末吉です。

>「もともと dbflute-1.0.0 で実装していたアプリケーションに対して、
>dbflute1.1.9で自動生成したBehaviorクラスたちをjarにして、
>そのアプリケーションで参照させている」ということになりますでしょうか? 

その通りです。
同時にデータベースをOracleからpostgreSQLに変更しています。
この先週、外だしSQLのpostgreSQL対応が終わったので、
アプリのimport文を修正してみたら、エラーが出て何故だろうと考えているところです。

>これ...アプリケーションが二つあるということでしょうか...!?
>DBFlute Runtime-1.0.x のアプリに対して、
>DBFlute Engine-1.1.x で自動生成されたクラスを使おうとしていたり???

アプリは二つあります。
といっても違いはimport文だけです。
(例:org.seasar.dbfluteをorg.dbfluteに修正)
は一応、読んだのですが理解できなくて。。。
DBにアクセスして自動的にクラスを生成するなら、
データ移行が済んだpostgreSQLと外だしSQLが一式あれば動くだろうと思ったのですが。

manageのrenewalを実行すれば、
アプリのjavaプログラムで エラーの原因になっているメソッドを
しかるべきメソッドに修正してくれるのでしょうか?

2019年6月20日(木) 13:24 kubo <dbf...@gmail.com>:
--
このメールは Google グループのグループ「DBFluteユーザの集い」の登録者に送られています。
このグループから退会し、グループからのメールの配信を停止するには dbflute+u...@googlegroups.com にメールを送信してください。
このグループに投稿するには、dbf...@googlegroups.com にメールを送信してください。
https://groups.google.com/group/dbflute からこのグループにアクセスしてください。
このディスカッションをウェブ上で閲覧するには、https://groups.google.com/d/msgid/dbflute/CAALfU-CZd4354xbDN_HfCUjvbkT58%2BjMtYfpSLSyLqrPMPo_Ng%40mail.gmail.com にアクセスしてください。
その他のオプションについては、https://groups.google.com/d/optout にアクセスしてください。

kubo

unread,
Jun 20, 2019, 4:38:44 AM6/20/19
to DBFluteユーザの集い
jfluteです

> 同時にデータベースをOracleからpostgreSQLに変更しています。
> この先週、外だしSQLのpostgreSQL対応が終わったので、
> アプリのimport文を修正してみたら、エラーが出て何故だろうと考えているところです。

なるほど。一気に、フレームワークのアップグレードも、
DBMSの変更もやっているという感じですね。

> manageのrenewalを実行すれば、
> アプリのjavaプログラムで エラーの原因になっているメソッドを
> しかるべきメソッドに修正してくれるのでしょうか?

いえ何も設定せずにそれはないです。

o アプリのプログラムは 1.0.x (Java6版) を想定したコードになっている
o 自動生成されるクラスは、1.1.x (Java8版) になる

というところで、1.0.x と 1.1.x の違いによるズレでコンパイルエラーになります。
アプリのプログラムを手動で頑張って修正すれば動くようになりますが、
それは限界はあると思うので...

1.1.x で生成されるクラスを 1.0.x に近い状態で生成するという互換オプションがあります。
それが「移行 1.0.x to 1.1」ページの「まず、互換モードを全開にする」の部分です。

ゆえに、アプリの手動による修正を少なくしたいのであれば、
互換モードをうまく活用していくようにすると良いです。

まあ、「移行 1.0.x to 1.1」ページを参考にしないとアップグレードは難しいと思うので、
わからないことがあれば細かいことでも気軽にぜひ聞いてください。


一方で、繰り返しになりますが、その作業をする前に、
まずは DBFlute-1.0.x の最新版 1.0.5N へのアップグレードをした方が良いです。

(1.1.x (Java8版)へのアップグレードは、それなりに時間のかかることなので、
いったん 1.0.5N にアップするだけでリリースするというのもアリだとは思います。
ちょっと開発状況がわからないのでなんともですが)


ちなみに、DBFlute Slackの方で、同じように1.0.xから1.1.xにアップグレード作業を
されていた方とのやり取りが残っていますので、参考になるかもしれません。
もしよければ御覧ください。
(まだ、DBFlute Slackの自動オープン化できていないので、普通に参加しないと見られないですが)
http://dbflute.seasar.org/ja/manual/topic/office/docdesc.html#feedback

末吉博

unread,
Jun 20, 2019, 6:00:31 PM6/20/19
to DBFluteユーザの集い
jfluteさま

いつも素早い対応、ありがとうございます。

リンク先の情報をみながら
週末に 1.0.5N へのアップグレードをやってみようと思います。

>いったん 1.0.5N にアップするだけでリリースするというのもアリだとは思います。 

お勉強としてやっていますので、
1.2.0まで持っていこうと考えています。

サポート、ありがとうございました。
Reply all
Reply to author
Forward
0 new messages