Products · Broad category
ORMs
Raised as a usability problem by 36 people on Hacker News over 17 years (2010–2026), in 32 threads.
This is a broad category rather than one product, so its issues aren't ranked on the home page.
No issue was raised by at least 3 people in 3 threads this year.
Every issue, all time, most people first
Slightly complicated queries become very difficult to writeUnreviewed
20102026- ORM-generated databases have weird lookup tables and funny names, unusable without the ORM2024-10-24
- ORMs make intermediate queries really hard and complex queries impossible2024-04-25
- ORMs become very difficult to use once queries get slightly complicated2023-09-02
Hard to use correctly without understanding underlying joinsUnreviewed
20102026- Deceptively difficult to use correctly, requiring understanding of underlying joins2022-01-15
- Syntax for complicated queries and left joins is hard to write2019-05-07
- Hours spent figuring out how to get the right join or query2011-06-15
Unreviewed issues were grouped by machine: Claude Haiku labelled each comment as a usability complaint, named what it's about and summed up the problem in a line, and a small model grouped similar problems. Nobody has checked them by hand. Expect mistakes.
The newest 37 complaints
- Can't inspect or profile the generated SQL without running the code with prints2026-07-04
- Parallel branches create conflicting migration numbers, so migrations run in wrong order and columns disappear2026-03-22
- Lazy loading makes N+1 queries unpredictable, and expressing CTEs or windows is hard2025-12-22
- Database abstraction layers feel confusing and more complicated than plain SQL2025-01-01
- ORM-generated databases have weird lookup tables and funny names, unusable without the ORM2024-10-24
- ORMs make intermediate queries really hard and complex queries impossible2024-04-25
- Edge cases eat huge time, and learning each ORM's API is hard2024-02-01
- ORMs become very difficult to use once queries get slightly complicated2023-09-02
- Generated queries are opaque, making performance problems hard to debug2023-02-26
- Mixing ORM and raw SQL adds cognitive load and causes cache inconsistency bugs2023-02-26
- Must duplicate database entities in code and keep them in sync2023-01-31
- ORMs add redundant query languages on top of SQL with subtle issues2022-05-25
- Deceptively difficult to use correctly, requiring understanding of underlying joins2022-01-15
- ORM loads data via configuration the developer can't bend into shape2021-11-26
- ORM attribute access hides a database query, making slow per-row queries look cheap2021-09-08
- Must learn a new API for each ORM instead of plain SQL2021-06-18
- ORM operations hide SQL behaviour, so simple things become harder to understand than raw SQL2021-02-09
- Builder-pattern query APIs are overwhelming and hard to compose correctly2020-06-09
- Must jump through hoops to avoid loading unneeded fields, which can break updates2019-12-10
- Developers must know RDBMS differences; generated schemas break on non-trivial types2019-11-25
- ORM silently runs far more queries than programmers expect, making behavior hard to predict2019-09-21
- ORM queries hide indexes and locking, so you can't easily see what's happening2019-09-21
- Impose their own data model, frustrating to use2019-09-20
- When the ORM misbehaves, you must experiment and fiddle to understand it2019-09-04
- ORM hides the generated SQL, making slow queries hard to diagnose2019-05-10
- Syntax for complicated queries and left joins is hard to write2019-05-07
- ORM-generated SQL is hard to debug and reason about, with unexpected output2019-02-25
- ORM query interface is harder to use than SQL and hides what queries do2018-06-28
- Each ORM brings a steep learning curve with many new concepts and conventions users must understand2017-12-18
- Mapping queries into the ORM's interface is annoying and produces unexpected behavior to reason about2017-12-18
- Developers spend too much time fighting ORMs to get the SQL they want2017-06-25
- ORM-generated queries are hard to control, slow, and take far longer to get right2017-05-02
- Hitting proxies silently lazy-loads or throws, so developers must manually check object graphs2017-04-24
- Hard to work out how to express simple queries in the ORM2016-02-07
- Hours spent figuring out how to get the right join or query2011-06-15
- ORM hides which joins and queries run, making behavior hard to tell2011-06-15
- Hard to express queries in ORM syntax that are easy in SQL2010-12-13