Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[dali-dev] Top-Down development with Dali

Hi guys,

I was just wondering about Dali's take on Top-Down JPA development. I think Dali is incredibly helpful in the bottom-up approach where you generate entity classes from an existing data source. At that point, it is easy to see how the annotations on the JPA entities map to your database. But when starting with a top-down modeling approach or directly creating new annotated Java classes (with the help of the JPA views), this seems a more difficult task for a developer. This may be due more to the JPA spec itself, rather than Dali, but it seems like there could be more help for the users here. For example, setting up a relationship is not trivial if you don't know the details of JPA. You first have to add a field or method returning a Collection of your target entities, then set your cardinality, possibly a mappedBy, and potential JoinTable/JoinColumns. When really as a user, you're thinking "I just want my Department to have a list of Employees!" I'm not sure of the best way that this could be accomplished, but it seems like there could be a simpler way for tooling to set this up and determine most of that information itself.

I am just wondering if Dali sees any further potential in adding more tooling for the top-down development scenarios. Maybe the true value really is in bottom-up or meet-in-the-middle development; I'm not sure how expected it is for users to start writing entities from scratch. Are there any future plans to focus on some of the tooling for building your data model from the ground up? Certainly it is possible now with the Dali JPA views, but you have to know what you're doing already. And maybe that level of developer is the targeted user, so the JPA Details annotation view is quite sufficient. I was just doing some recent development where I was writing entities from scratch and found it a more difficult experience than the ease of use I found when generating entities from an existing database. Just got me to thinking, is all :)

Thanks
Tom



Back to the top