Replies: 1 comment 3 replies
-
Yes.
It never did depend on auto tuning no. [wrt Auto tuning, I'd say its more the opposite, that you'd never be able to support auto tuning without such a feature imo]
So it's more accurate to say - Ebean will not generate projection joins for more than one *ToMany relationship.
Due to cartesian products having the potential to produce very large resultSets. e.g. Collection A has 100 rows, Collection B has 100 rows ... the cartesian produces a resultSet with 10,000 rows. So performance risk is the reasoning. We can't predict the cardinality and we know it gets bad very quickly.
As a workaround, you'd create a transaction at Repeatable Read or Serializable to span those queries - but there isn't a free lunch in that there are typically downsides to running in higher isolation levels which is why the default isolation level for Postgres is Read Committed. [Noting that there are some newer MVCC databases that I'd suggest argue for higher isolation levels as the default and work differently - e.g. Yugabyte]
No, there are no plans for that. |
Beta Was this translation helpful? Give feedback.
-
It's stated that "Ebean ORM will never generate a SQL cartesian product." I have the following questions regarding that.
Beta Was this translation helpful? Give feedback.
All reactions