Hibernate version:1.0.4.0
Name and version of the database you are using: MS SQL SERVER 2005
Hi,
I ve declared a Bag in my mapping file:
<bag name="Details" inverse="true" lazy="true">
<key column="TerminalInvoiceId"></key>
<one-to-many class="Hobex.CRM.InvoiceDetails, Hobex.CRM.Models" />
</bag>
but the IList property allways is NULL initialized after creating the Object an following that i get a NullRefernce Exception when i try to call the Add Method. I worked with bags like this before and it just worked fine the Ilist properties where instantly initialized as hibernate bags.
Additional Infos:
the complete mapping of those two Objects:
<class name="Hobex.CRM.Invoice, Hobex.CRM.Models" table="TerminalInvoice">
<id name="Id" type="Int32" column="TerminalInvoiceID" access="field.pascalcase-m-underscore">
<generator class="identity" />
</id>
<property name="Number" column="InvoiceNumber" type="String" />
<property name="State" column="InvoiceStatusID" type="Int32" />
<property name="CreateDate" column="CreateDate" type="Nullables.NHibernate.NullableDateTimeType, Nullables.NHibernate" />
<property name="CreateUser" column="CreateUser" type="String" />
<property name="ModifyDate" column="ModifyDate" type="Nullables.NHibernate.NullableDateTimeType, Nullables.NHibernate" />
<property name="ModifyUser" column="ModifyUser" type="String" />
<property name="IntendedPurposeLineOne" column="IntendedPurpose1" type="String" />
<property name="IntendedPurposeLineTwo" column="IntendedPurpose2" type="String" />
<property name="IntendedPurposeLineThree" column="IntendedPurpose3" type="String" />
<property name="Information" column="InfoText" type="String" />
<property name="EnquiryDate" column="EnquiryDate" type="Nullables.NHibernate.NullableDateTimeType, Nullables.NHibernate" />
<property name="Expenses" column="Spesen" type="Decimal" />
<property name="Amount" column="Amount" type="Decimal" />
<property name="Date" column="InvoiceDate" type="Nullables.NHibernate.NullableDateTimeType, Nullables.NHibernate" />
<many-to-one name="Terminal" column="TerminalID" class="Hobex.CRM.Terminal, Hobex.CRM.Models" />
<many-to-one name="Kind" column="InvoiceKindID" class="Hobex.CRM.InvoiceKind, Hobex.CRM.Models" />
<many-to-one name="Tax" column="UstId" class="Hobex.CRM.Tax, Hobex.CRM.Models" />
<bag name="Details" inverse="true" lazy="true">
<key column="TerminalInvoiceId"></key>
<one-to-many class="Hobex.CRM.InvoiceDetails, Hobex.CRM.Models" />
</bag>
</class>
<class name="Hobex.CRM.InvoiceDetails, Hobex.CRM.Models" table="TerminalInvoiceDetails">
<id name="Id" type="Int32" column="TerminalInvoiceDetailsID" access="field.pascalcase-m-underscore">
<generator class="identity" />
</id>
<property name="Number" column="ProductNumber" type="String" />
<property name="Name" column="ProductName" type="String" />
<property name="UnitCount" column="ProductCount" type="Int32" />
<property name="PricePerUnit" column="ProductPrice" type="Decimal" />
<property name="CreateDate" column="CreateDate" type="Nullables.NHibernate.NullableDateTimeType, Nullables.NHibernate" />
<property name="CreateUser" column="CreateUser" type="String" />
<property name="ModifyDate" column="ModifyDate" type="Nullables.NHibernate.NullableDateTimeType, Nullables.NHibernate" />
<property name="ModifyUser" column="ModifyUser" type="String" />
<many-to-one name="Invoice" column="TerminalInvoiceId" class="Hobex.CRM.Invoice, Hobex.CRM.Models" />
</class>
----------------------------
the tables:
the Details table ( represented by the bag )
CREATE TABLE [dbo].[TerminalInvoiceDetails](
[TerminalInvoiceDetailsID] [int] IDENTITY(1,1) NOT NULL,
[TerminalInvoiceId] [int] NOT NULL,
[ProductNumber] [nvarchar](20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[ProductName] [nchar](10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[ProductCount] [int] NULL,
[ProductPrice] [decimal](8, 2) NULL,
[CreateDate] [datetime] NULL,
[CreateUser] [nvarchar](30) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[ModifyDate] [datetime] NULL,
[ModifyUser] [nvarchar](30) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
CONSTRAINT [PK_TerminalInvoiceDetails] PRIMARY KEY CLUSTERED
(
[TerminalInvoiceDetailsID] ASC
) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[TerminalInvoiceDetails] WITH CHECK ADD CONSTRAINT [FK_TerminalInvoiceDetails_TerminalInvoice] FOREIGN KEY([TerminalInvoiceId])
REFERENCES [dbo].[TerminalInvoice] ([TerminalInvoiceID])
GO
ALTER TABLE [dbo].[TerminalInvoiceDetails] CHECK CONSTRAINT [FK_TerminalInvoiceDetails_TerminalInvoice]
-----------------------------
the base table TERMINALINVOICE
CREATE TABLE [dbo].[TerminalInvoice](
[TerminalInvoiceID] [int] IDENTITY(1,1) NOT NULL,
[TerminalID] [int] NOT NULL,
[InvoiceKindID] [int] NULL,
[InvoiceNumber] [nvarchar](16) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[InvoiceDate] [datetime] NULL,
[Amount] [numeric](11, 2) NULL,
[EnquiryDate] [datetime] NULL,
[InfoText] [nvarchar](255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[DTID] [int] NULL,
[InvoiceStatusID] [int] NULL CONSTRAINT [DF_TerminalInvoice_InvoiceStatusID] DEFAULT (1),
[UStID] [int] NULL,
[Spesen] [numeric](11, 2) NULL,
[IntendedPurpose1] [nvarchar](57) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[IntendedPurpose2] [nvarchar](57) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[IntendedPurpose3] [nvarchar](57) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[PaymentID] [int] NULL,
[CreateDate] [datetime] NULL,
[CreateUser] [nvarchar](30) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[ModifyDate] [datetime] NULL,
[ModifyUser] [nvarchar](30) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[IntendedPurpose4] [nvarchar](57) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[CollInvRecipientID] [int] NULL,
[Months] [int] NULL,
[ksgBG] [numeric](11, 2) NULL,
[hobexBG] [numeric](11, 2) NULL,
[Miete] [real] NULL,
CONSTRAINT [PK_TerminalInvoice] PRIMARY KEY CLUSTERED
(
[TerminalInvoiceID] ASC
) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[TerminalInvoice] WITH CHECK ADD CONSTRAINT [CollInvRecipient_TerminalInvoice_FK1] FOREIGN KEY([CollInvRecipientID])
REFERENCES [dbo].[CollInvRecipient] ([CollInvRecipientID])
GO
ALTER TABLE [dbo].[TerminalInvoice] CHECK CONSTRAINT [CollInvRecipient_TerminalInvoice_FK1]
GO
ALTER TABLE [dbo].[TerminalInvoice] WITH CHECK ADD CONSTRAINT [DT_TerminalInvoice_FK1] FOREIGN KEY([DTID])
REFERENCES [dbo].[DT] ([DTID])
GO
ALTER TABLE [dbo].[TerminalInvoice] CHECK CONSTRAINT [DT_TerminalInvoice_FK1]
GO
ALTER TABLE [dbo].[TerminalInvoice] WITH CHECK ADD CONSTRAINT [InvoiceKind_Accounting_FK1] FOREIGN KEY([InvoiceKindID])
REFERENCES [dbo].[InvoiceKind] ([InvoiceKindID])
GO
ALTER TABLE [dbo].[TerminalInvoice] CHECK CONSTRAINT [InvoiceKind_Accounting_FK1]
GO
ALTER TABLE [dbo].[TerminalInvoice] WITH CHECK ADD CONSTRAINT [InvoiceStatus_TerminalInvoice_FK1] FOREIGN KEY([InvoiceStatusID])
REFERENCES [dbo].[InvoiceStatus] ([InvoiceStatusID])
GO
ALTER TABLE [dbo].[TerminalInvoice] CHECK CONSTRAINT [InvoiceStatus_TerminalInvoice_FK1]
GO
ALTER TABLE [dbo].[TerminalInvoice] WITH CHECK ADD CONSTRAINT [Payment_TerminalInvoice_FK1] FOREIGN KEY([PaymentID])
REFERENCES [dbo].[Payment] ([PaymentID])
GO
ALTER TABLE [dbo].[TerminalInvoice] CHECK CONSTRAINT [Payment_TerminalInvoice_FK1]
GO
ALTER TABLE [dbo].[TerminalInvoice] WITH CHECK ADD CONSTRAINT [Terminal_Accounting_FK1] FOREIGN KEY([TerminalID])
REFERENCES [dbo].[Terminal] ([TerminalID])
GO
ALTER TABLE [dbo].[TerminalInvoice] CHECK CONSTRAINT [Terminal_Accounting_FK1]
GO
ALTER TABLE [dbo].[TerminalInvoice] WITH CHECK ADD CONSTRAINT [USt_TerminalInvoice_FK1] FOREIGN KEY([UStID])
REFERENCES [dbo].[USt] ([UStID])
GO
ALTER TABLE [dbo].[TerminalInvoice] CHECK CONSTRAINT [USt_TerminalInvoice_FK1]
|