Comments (2)
If have done some test with release 4.1.0. My current findings are:
My assumptions about test with add only were not correct. In Java if I add an Object contained in one Collection to an other Collection the Object is contained in both Collections afterwards. This is not an error, this is what I have to expect.
If I want move an Object from one Collection to an other I have to remove it from the first and add it to the second Collection.
Java does not know anything about the one-to-many relation.
To get an successfull operation of remove and add I have to obey a strict rule (Relation Management disabled):
I have to set the reference from the Child (Collection member) to the Parent (Collection owner) to null first and remove the the Child from the Collection afterwards.
All other aproaches (not clearing the reference at all or remove the Child from Collection first and set the reference to null afterwards) result in an error (datanucleus tries to delete the Child from the database and ignores the add to the second Collection).
from datanucleus-rdbms.
You have a 1-N and an element in the Collection. You want to just add it to a Collection of a different owner (and set the owner link) without bothering to tell the old owner of this change of ownership. You have not allowed "managed relationships" logic (performed at flush or commit) to run. Consequently this is user error.
Solution : call pm.flush() and then do your test, alternatively handle the remove from the other owner Collection yourself (recommended)
from datanucleus-rdbms.
Related Issues (20)
- Handling of insert audit attributes (user, timestamp) is incorrect when specified on a field
- Regression with SQL Server caused by #408 HOT 1
- ConnectionFactoryImpl#closeAfterTransactionEnd returns always true HOT 2
- Invalid MySQL schema generated when used with Connector/J 8.0.30 HOT 2
- Support TINYBLOB on MySQL/MariaDB without size specifier, as per TINYTEXT
- Search of setter function in ResultClassROF.getObject() is broken HOT 1
- NullPointerException in ResultClassROF.getObject() in 6.0.2 HOT 6
- ArgType not cached for null value in first Result in ResultSet HOT 1
- Wrong identity type generated for type `long` with PostgreSQL
- ResultClassROF can fail to set fields/properties when JDBC driver returns unassignable type HOT 9
- datanucleus.query.jdoql.{varName}.join extension does not work when "varName" is not lower case HOT 4
- Support bulk-fetch on a Collection when field is empty
- BatchUpdateException when reordering elements of 1-m relationship as List<> (join table) - with testcase HOT 3
- Provide InitSQL hikari options HOT 2
- Support ConnectionInitSQL with HikariCP
- keyword "COLUMN_NAME" for dm database HOT 3
- `UpdateStmtAllowTableAliasInSet` is not honored for update statements involving `DelegatedExpression`s HOT 1
- Issue #470 doesn't allow for discriminatorColumnName not being in different case
- Provide registerMbeans HikariCP options
- Unexpected query performance numbers in datanucleus log HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from datanucleus-rdbms.