[seasar-dotnet:343] Re: [S2Dao] 複数テーブルとの1:Nマッピングエラーについて
his @ hamal.freemail.ne.jp
his @ hamal.freemail.ne.jp
2006年 9月 19日 (火) 00:30:07 JST
古賀です。
ソースを以下に書きます。
(略)の部分はスニペットで生成したプロパティ定義のままです。
SQL Serverだと自動生成されたSQLは正常に処理されますが、
MDBを開いて自動生成されたSQLでクエリを作成しようとすると
「演算子がありません。」というエラーがでます。
生成されたSQLがMS Accessに対応していないのではないでしょうか?
MS Accessにはあまり詳しくないので後日調べてみようかと思います。
[Entity]
Imports System.Text
Imports Seasar.Dao.Attrs
Public Class TBL_A
Private _key1 As Integer
Private _key2 As Integer
Private _key3 As Integer
Private _tblB As TBL_B
Private _tblC As TBL_C
Public Property Key1() As Integer
(略)
End Property
Public Property Key2() As Integer
(略)
End Property
Public Property Key3() As Integer
(略)
End Property
<Relno(0), Relkeys("KEY1:KEY1,KEY2:KEYB")> _
Public Property TBL_B() As TBL_B
(略)
End Property
<Relno(1), Relkeys("KEY1:KEY1,KEY3:KEYC")> _
Public Property TBL_C() As TBL_C
(略)
End Property
End Class
Public Class TBL_B
Private _key1 As Integer
Private _keyB As Integer
Public Property Key1() As Integer
(略)
End Property
Public Property KeyB() As Integer
(略)
End Property
End Class
Public Class TBL_C
Private _key1 As Integer
Private _keyC As Integer
Public Property Key1() As Integer
(略)
End Property
Public Property KeyC() As Integer
(略)
End Property
End Class
[Dao]
Imports Seasar.Dao.Attrs
<Bean(GetType(TBL_A))> _
Public Interface ITestDao
Function GetAll() As IList
End Interface
[自動作成SQL]
SELECT TBL_A.KEY2, TBL_A.KEY1, TBL_A.KEY3, TBL_B.KEYB AS KEYB_0, TBL_B.KEY1 AS KEY1_0, TBL_C.KEYC AS KEYC_1, TBL_C.KEY1 AS KEY1_1 FROM TBL_A LEFT OUTER JOIN TBL_B TBL_B ON TBL_A.KEY1 = TBL_B.KEY1 AND TBL_A.KEY2 = TBL_B.KEYB LEFT OUTER JOIN TBL_C TBL_C ON TBL_A.KEY1 = TBL_C.KEY1 AND TBL_A.KEY3 = TBL_C.KEYC
[Exception]
System.Reflection.TargetInvocationException: 呼び出しのターゲットが例外をスローしました。 ---> Seasar.Framework.Exceptions.SQLRuntimeException: [ESSR0071]SQLで例外が発生しました。理由はSeasar.Framework.Exceptions.SQLRuntimeException: [ESSR0071]SQLで例外が発生しました。理由はSystem.Data.OleDb.OleDbException: クエリ式 '' の 構文エラー : 演算子がありません。
===
古賀久司 (Hisashi KOGA)
e-mail : his @ hamal.freemail.ne.jp
"Kazuya Sugimoto" <sugimotokazuya @ gmail.com>さん:
> 杉本です。
>
> 06/09/18 に古賀さんは書きました:
>
> > SELECT TBL_A.KEY1, TBL_B.KEY2,
> > TBLB.KEY1 AS KEY1_0, TBLB.KEY2 AS KEY2_0,
> > TBLC.KEY1 AS KEY1_1, TBLC.KEYC AS KEYC_1
>
> TBL_B.KEY2となっていますが、TBL_BはKEYBが正解ですよね。
> TBL_BのEntityはどうなっているでしょうか?
>
> --
> Kazuya Sugimoto
> http://d.hatena.ne.jp/sugimotokazuya/
> _______________________________________________
> seasar-dotnet mailing list
> seasar-dotnet @ ml.seasar.org
> https://www.seasar.org/mailman/listinfo/seasar-dotnet
>
>
> --
> No virus found in this incoming message.
> Checked by AVG Free Edition.
> Version: 7.1.405 / Virus Database: 268.12.4/449 - Release Date: 2006/09/15
seasar-dotnet メーリングリストの案内