|5 days ago||3 days ago|
|Apache License 2.0||GNU General Public License v3.0 or later|
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
We haven't tracked posts mentioning Apache Phoenix yet.
Tracking mentions began in Dec 2020.
Is ORM still an anti-pattern?
15 projects | news.ycombinator.com | 27 Jun 2023
> I've been doing ORM on Java since Hibernate was new, and it has always sucked.
Have you ever looked at something like myBatis? In particular, the XML mappers: https://mybatis.org/mybatis-3/dynamic-sql.html
Looking back, I actually quite liked it - you had conditionals and ability to build queries dynamically (including snippets, doing loops etc.), while still writing mostly SQL with a bit of XML DSL around it, which didn't suck as much as one might imagine. The only problem was that there was still writing some boilerplate, which I wasn't the biggest fan of.
Hibernate always felt like walking across a bridge that might collapse at any moment (one eager fetch away from killing the performance, or having some obscure issue related to the entity mappings), however I liked tooling that let you point towards your database and get a local set of entities mapped automatically, even though codegen also used to have some issues occasionally (e.g. date types).
That said, there's also projects like jOOQ which had a more code centric approach, although I recall it being slightly awkward to use in practice: https://www.jooq.org/ (and the autocomplete killed the performance in some IDEs because of all the possible method signatures)
More recently, when working on a Java project, I opted for JDBI3, which felt reasonably close to what you're describing, at the expense of not being able to build dynamic queries as easily, as it was with myBatis: https://jdbi.org/
That said, with the multi-line string support we have in Java now, it was rather pleasant regardless: https://blog.kronis.dev/tutorials/2-4-pidgeot-a-system-for-m...
I don't think there's a silver bullet out there, everything from lightweight ORMs, to heavy ORMs like Hibernate, or even writing pure SQL has drawbacks. You just have to make the tradeoffs that will see you being successful in your particular project.
2 projects | /r/SQL | 25 Jun 2023
Have a look at jooq - I know this has been used to rewrite SQL from one dialect to another, so it MUST be capable of collating code activity metrics. Look here. Otherwise, you might want to look into writing your own parser. ANTLR has a T-SQL dialect parser script here.
Magnum: A new Scala 3 Database Client
4 projects | /r/scala | 14 Jun 2023
Feature requests go here: https://github.com/jOOQ/jOOQ/issues/new/choose. Looking forward!
Looking4Library: A GraphQL client that has query methods on the generated types
3 projects | /r/typescript | 4 Jun 2023
You may have the fortune of being familiar with the jOOQ library for Java/JVM apps, that can generate domain models based on your database schema, as well as methods on these classes to perform queries. In case you're not, here an example Postgres schema:
Any library you would like to recommend to others as it helps you a lot? For me, mapstruct is one of them. Hopefully I would hear some other nice libraries I never try.
21 projects | /r/java | 27 May 2023
JOOQ. I love this one; its very very useful when you don't need/like any ORM, and it works with, for example Spring JDBC, so you don't have to write directly the SQL into Strings. The generator helps you with all the DAO layer, and if you want it generates JPA Models too.
Using Flyway for Database Setup
2 projects | /r/Kotlin | 28 Apr 2023
In our last episode (https://youtu.be/GLYL2bkNPjM) we decided to use jOOQ (https://www.jooq.org/), rather than JetBrains Exposed for our database access, but discovered that we were using Exposed to create our tables, so we couldn't remove it straight away.
Is it just me, or does the Spring Framework lead to hard-to-maintain code and confusion with annotations?
7 projects | /r/java | 19 Apr 2023
I strongly advocate frameworks like https://javalin.io/ and Jooq (https://www.jooq.org/) if you are going to start a new project in Java.7 projects | /r/java | 19 Apr 2023
Are there any poplar alternatives to siesta?
5 projects | /r/java | 15 Apr 2023
jOOQ vs Exposed
3 projects | /r/Kotlin | 14 Apr 2023
This is part two of my interview with Lukas Eder about jOOQ - the Java Object Oriented Query library (https://www.jooq.org/), best watched after part one (https://youtu.be/0WcNM7UCtmQ)In this part we take the code we had written in tests and move it into an implementation of the repository pattern, checking that jOOQ version passes the tests we had previously written for Exposed ((https://youtu.be/Uza_dWsNMUs).
What are some alternatives?
Querydsl - Unified Queries for Java
JDBI - jdbi is designed to provide convenient tabular data access in Java; including templated SQL, parameterized and strongly typed queries, and Streams integration
Spring Data JPA - Simplifies the development of creating a JPA-based data access layer.
Presto - The official home of the Presto distributed SQL query engine for big data
HikariCP - 光 HikariCP・A solid, high-performance, JDBC connection pool at last.
Speedment - Speedment is a Stream ORM Java Toolkit and Runtime
sql2o - sql2o is a small library, which makes it easy to convert the result of your sql-statements into objects. No resultset hacking required. Kind of like an orm, but without the sql-generation capabilities. Supports named parameters.
blaze-persistence - Rich Criteria API for JPA providers
mybatis-plus - An powerful enhanced toolkit of MyBatis for simplify development
SQLDelight - SQLDelight - Generates typesafe Kotlin APIs from SQL
requery - requery - modern SQL based query & persistence for Java / Kotlin / Android