[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 メーリングリストの案内