使用 Hibernate 等 ORM 将 ID 列表转换为对象列表

发布于 2024-10-15 12:17:12 字数 336 浏览 0 评论 0原文

在 Web 应用程序中,选择集合元素时通常会向服务器发送 ID 列表。可能有一个代表一门课程的 HTML 表单,其中包含一个学期所有学生的列表。通过选择一些学生,他们将与课程相关联。服务器将收到学生 ID 列表。

使用 Hibernate 等 ORM 将此 ID 列表(数据库中的主键)转换为域对象列表的最佳实践是什么?我想避免再次为每个域类编写相同的代码。 Grails 确实如此类似的东西(但我不知道如何)。

In web applications it is common to send a list of IDs to the server when selecting elements of a collection. There could be a HTML form representing a course and it would contain a list with all students of a semester. By selecting some students they would be associated with the course. The server would receive a list of student IDs.

What is the best practise to convert this list of IDs (primary keys in the DB) into a list of domain objects with an ORM like Hibernate? I'd like to avoid to write the same code for each domain class again. Grails does something like that (but I don't know how).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

断桥再见 2024-10-22 12:17:12

所以我们有一个带有这样的方法的通用 DAO

public <T extends IDomainObject> List<T> getAll(Class<T> type, List<Integer> ids) {
    return (List<T>) session.createCriteria(type).add(Restrictions.in("id", ids).list();
}

按照惯例,我们所有的域模型对象都实现 IDomainObject 并有一个名为 id 的主键字段。

so we have a generic DAO with a method like this

public <T extends IDomainObject> List<T> getAll(Class<T> type, List<Integer> ids) {
    return (List<T>) session.createCriteria(type).add(Restrictions.in("id", ids).list();
}

By convention all our domain model objects implements IDomainObject and have a primary key field named id.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文