[seasar-dotnet:2426] Re: プライマリキーのないテーブルについて

志水正幸 [E-MAIL ADDRESS DELETED]
2015年 2月 15日 (日) 11:46:50 JST


志水です。
超お世話になっております。

久保さん、こんにちは。

未サポートでしたか。了解です。
もともと現項目の日付と時間(時分秒)がPKだったんですけどね。
全画面の保存時にInsertするテーブルなので、絶対に一意制約違反が頻発すると 
思うし
どうせ禄に活用もしない履歴テーブルだろうし
PK用のシーケンス作ったりするのも面倒だと思ってPKはずさせたんですけど
こんなに時間とるとは横着しちゃダメですね。

ツールには外だしSQLを全コピーしたものでしたので
#Rireki# の行からまるごと含めて動いてました。

だから私も原因が突き止められず余計に戸惑ってしまったのかもしれません。
というのは、
こちらの事情で時間もないということで、すぐに原因がわからない場合も考えて
設計にシーケンスのPKを追加する方向で話を進めていたんです。
そのために一旦、外だしSQLファイルをプロジェクトから削除していたのですが、
何故か、ファイルを完全削除してしまっていたみたいで(頭おかしい・・・)
今回、詳細なログが必要ということだったので
もう一度、メールに貼り付けてあったSQL内容で外だしSQLファイルを再作成して
エラーを出そうとしたらsql2entity.batの実行が成功しpmbファイルも作成され 
ていました。

本当の原因が特定できずに気持ち悪いですが
まず断言できるは100%こちらの作成ミスです。

久保さんにはお手数を取らせてしまって申し訳ありませんでした。
また不明点とかあれば教示願うと思うので
懲りずに相談にのってください。


以上、有難うございました。


> 久保(jflute)です
>
> 志水さん、こんばんは
>
> 申し訳ないですが、.NETの方だとその機能はサポートしてないですね…
> まあ念のために月並みですが、履歴とかでもPKを付けることはオススメします。
>
> 外だしSQLならできないことはないはずですが、
> ネストした例外とかにもうちょい詳しい情報出てたりしませんかね?
> あと、SQLツールだと動いているというのは、
> -- #Rireki# の行からまるごと含めて動いてるってことでしょうか?
>
>
> 2015-02-14 13:29 GMT+09:00 志水正幸 <ie2m-smz @ asahi-net.or.jp>:
>> 志水です。
>> 超お世話になっております。
>>
>> どうやってもInsertメソッドがでてこないので
>> Insertの外だしSQLを作成したのですが
>> sql2entity.batを実行すると下記のエラーとなります。
>> SQL文はツールで実行すると正常に実行されることを確認しています。
>>
>> 何かお気づきのことがありましたら
>> ご教示お願いします。
>>
>>
>> 2015-02-14 13:18:49,974 [main] INFO  (DfSqlFileFireMan#fire():65) -
>> ...Firing: TrRirekiBhv_insertRireki.sql
>> 2015-02-14 13:18:49,974 [main] INFO (DfOutsideSqlAnalyzer#traceSql():314) -
>> SQL:
>> -- #Rireki#
>>
>> -- !df:pmb!
>> -- !!String add_dt!!
>> -- !!String add_tm!!
>> -- !!String add_id!!
>> -- !!String prg_id!!
>> -- !!String syori_kbn!!
>> -- !!String den_no!!
>> -- !!String jyoukyo_kbn_bf!!
>> -- !!String jyoukyo_kbn_af!!
>>
>> INSERT INTO TR_RIREKI (ADD_DT, ADD_TM, ADD_ID, PRG_ID, SYORI_KBN, DEN_NO,
>> JYOUKYO_KBN_BF, JYOUKYO_KBN_AF)
>> VALUES (/*pmb.Add_dt*/'20150214', /*pmb.Add_tm*/'1208',
>> /*pmb.Add_id*/'0004', /*pmb.Prg_id*/'0001', /*pmb.Syori_kbn*/'1',
>>   /*pmb.Den_no*/'00000000001', /*pmb.Jyoukyo_kbn_bf*/'999',
>> /*pmb.Jyoukyo_kbn_af*/'888')
>> 2015-02-14 13:18:49,990 [main] ERROR (DfDBFluteTaskUtil#logException():161)
>> - Look! Read the message below.
>> /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
>> Failed to execute DBFlute Task 'Sql2Entity'.
>>
>> [Advice]
>> Check the exception messages and the stack traces.
>>
>> [Database Product]
>> Oracle Oracle Database 11g Release 11.2.0.1.0 - 64bit Production
>>
>> [JDBC Driver]
>> Oracle JDBC driver 11.1.0.7.0-Production for JDBC 11.1
>> * * * * * * * * * */
>> org.seasar.dbflute.exception.SQLFailureException: Look! Read the message
>> below.
>> /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
>> Failed to execute the SQL!
>>
>> [SQL File]
>> ..\source\EigyoSien\DBFlute\ExBhv\TrRirekiBhv_insertRireki.sql
>>
>> [Executed SQL]
>> -- #Rireki#
>>
>> -- !df:pmb!
>> -- !!String add_dt!!
>> -- !!String add_tm!!
>> -- !!String add_id!!
>> -- !!String prg_id!!
>> -- !!String syori_kbn!!
>> -- !!String den_no!!
>> -- !!String jyoukyo_kbn_bf!!
>> -- !!String jyoukyo_kbn_af!!
>>
>> INSERT INTO TR_RIREKI (ADD_DT, ADD_TM, ADD_ID, PRG_ID, SYORI_KBN, DEN_NO,
>> JYOUKYO_KBN_BF, JYOUKYO_KBN_AF)
>> VALUES (/*pmb.Add_dt*/'20150214', /*pmb.Add_tm*/'1208',
>> /*pmb.Add_id*/'0004', /*pmb.Prg_id*/'0001', /*pmb.Syori_kbn*/'1',
>>   /*pmb.Den_no*/'00000000001', /*pmb.Jyoukyo_kbn_bf*/'999',
>> /*pmb.Jyoukyo_kbn_af*/'888')
>>
>> [SQLState]
>> 42000
>>
>> [ErrorCode]
>> 900
>>
>> [SQLException]
>> java.sql.SQLSyntaxErrorException
>> ORA-00900: SQL文が無効です。
>> * * * * * * * * * */
>>
>>
>>
>>
>>
>>> 志 水です。
>>>
>>> 超お世話になっております。
>>>
>>> たびたびすみません。
>>> 教えてください。
>>>
>>> 環境:ASP.NET
>>>        dbflute-0.8.9.56
>>>
>>> プライマリキーのない
>>> 履歴テーブルという、いろいろな更新等を記録する
>>> 意味があるのかよくわからないテーブルがありまして
>>> これにInsertをしたいのですがBehaviorにInsertメソッドが作成されませんで した。
>>>
>>> なんでかと思いマニュアルを読むと「littleAdjustmentMap.dfprop」の
>>> 「isAvailableNonPrimaryKeyWritable」をTRUEにすれば良いとわかったので
>>> 実行してみたのですが、やっぱりBehaviorにinsertメソッドが追加されていま せんでした。
>>>
>>> Example も見たのですがJavaだったので環境もなくテキストで開いてコードを 読んだのですが
>>> それらしいとこはAssertのところでJUnit(だったかな?)は良く知らないの でわかりませんでしたorz
>>>
>>> もしかして、.NETでは未サポートなんでしょうか?
>>> この場合、どのようにInsertを実行すればよいのでしょうか?
>>> (なにか.NETのサンプルがあればうれしいのですが、どこかにないですか?)
>>>
>>>
>>> 以上、ご教示お願いします。
>>>
>>>
>>> ---
>>> このEメールはアバスト アンチウイルスによりウイルススキャンされています。
>>> http://www.avast.com
>>>
>>> _______________________________________________
>>> seasar-dotnet mailing list
>>> seasar-dotnet @ ml.seasar.org
>>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>>
>>
>> ---
>> このEメールはアバスト アンチウイルスによりウイルススキャンされています。
>> http://www.avast.com
>>
>> _______________________________________________
>> seasar-dotnet mailing list
>> seasar-dotnet @ ml.seasar.org
>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
> _______________________________________________
> seasar-dotnet mailing list
> seasar-dotnet @ ml.seasar.org
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>


---
このEメールはアバスト アンチウイルスによりウイルススキャンされています。
http://www.avast.com



seasar-dotnet メーリングリストの案内