I just happen to be at the same stage you are, and I ran into the
exact same problem.

I used your syntax and also tried using the syntax:

var newCountry: Country = new Country();
newCountry.code = "CAN"
newCountry.description = "Great White North";
countries.addItem(newCountry);

And ran into the same problem.  I too use hibernate so I compared my
app to the crm app in the fds samples folder - an app that I hibernate
/ mySql enabled a while ago with no problems.  In the sample crm app
there's a similiar function for adding employees.  That helped me
figure it out.

Turns out that by default the hibernate tools generated my
country.hbm.xml with <generator class="assigned" />

Meanwhile the employee.hbm.xml file in the crm sample is configured
with  <generator class="native" />

I modified my country.hbm.xml and the problem went away.

Vic




--- In [email protected], "Benno Kittelmann"
<[EMAIL PROTECTED]> wrote:
>
> Hello all,
> 
> I have the following (simplified) setup: An ArrayCollection is bound
> to the dataProvider attribute of a DataGrid. The values of the
> ArrayCollection are loaded by a DataService during startup of the
> application. Additionally, there is a form which is used to create new
> managed objects. Whenever the form is submitted, a new object is
> created, and after a call to to createItem() it is persisted on the
> server, and some seconds later displayed in the DataGrid. So far so
> good.
> 
> Here's the problem though: If I try to directly add another object, I
> get the error message "Item with id '0' already exists'. And the
> object does not display in the DataGrid.
> 
> The object I'm trying to add/persist looks like this:
> 
> package myPackage
> {
>         [Managed]
>       [RemoteClass(alias="myPackage.Item")]
>       public class Item {
>               public var id:int;
>               public var name:String = "";            
>       }
> }
> 
> and I'm trying to persist it like this:
> 
> var newItem:Item = new Item();
> newItem.name = "foobar";
> dataservice.createItem(newItem);
>                       
> datagrid.dataProvider.refresh();
> Alert.show(String(newItem.id));       
> 
> 
> The alert is showing me '0' as the newly generated id - which I
> suppose is to be expected, since the order of method calls is not
> synchronous. Anyway, when I monitor what's happening on the server, I
> see that a new Java object is successfully created and persisted to
> the database, and it gets the ID value set from the ORM tool
> (Hibernate). I suspected that then the dataservice notifies the Flash
> client that a new object exists, and that it should display it. My
> assumption was that the managed Item object would then have the newly
> generated ID instead of the default '0' value.
> 
> I have the feeling I'm probably not doing things in the correct order
> or missing a crucial piece of information. How is one supposed to
> persist a managed object via createItem() and put that into a
> DataGrid? Does any article exist that showcases this situation? I've
> perused the Flex docs extensively, but did not find a good example
> that helped me resolve my problem.
> 
> Thanks in advance,
> Benno Kittelmann
>







--
Flexcoders Mailing List
FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/flexcoders/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/flexcoders/join
    (Yahoo! ID required)

<*> To change settings via email:
    mailto:[EMAIL PROTECTED] 
    mailto:[EMAIL PROTECTED]

<*> To unsubscribe from this group, send an email to:
    [EMAIL PROTECTED]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 


Reply via email to