Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [eclipselink-users] No inserts happen on table

Hello,

It does say the problem, but the field will be set via the AppUserProfile -> Address OneToMany relationship, which is set or Address itself would not be persisted. Unfortunately, EclipseLink will not set the foreign keys in a uni-directional OneToMany relationship in the initial insert statement. It will correct the foreign key here in a seperate Update to the database. The reason for this is because the Join column is defined within the AppUserProfile, and so only gets discovered when AppUserProfile gets processed while Address processing may be done before that. So if your database allows, you can set it to delay constraint processing until the transaction commits or turn off the constraint on this relationship. If that is not possible, an alternative would be to add a ManyToOne relationship from Address to AppUserProfile for the foreign key. This relationship will need to be set when ever an address is added to the AppUserProfile , but will allow EclipseLink to populate the foreign key in the insert statement.

Best Regards,
Chris

On 09/06/2010 12:07 PM, Dominik Dorn wrote:
Caused by: Exception [EclipseLink-4002] (Eclipse Persistence Services -
2.0.2.v20100323-r6872): org.eclipse.persistence.exceptions
.DatabaseException
Internal Exception: org.postgresql.util.PSQLException: ERROR: null value
in column "username" violates not-null constraint
Error Code: 0
Call: INSERT INTO ADDRESS (ZIPCODE, TOWN, ADDRESSLINE2, ADDRESSLINE1,
COUNTRY) VALUES (?, ?, ?, ?, ?)
       bind => [1001, Tunis, null, some place, Tunisia]

this says it all... the column "username" does not get filled in your
database table,
probably because the user is not set in the address entity.



Back to the top