我们项目中的一个要求是标准构建器,其中Hibernate标准非常适合支持该功能。
我更喜欢客户端直接构造DetachedCriteria对象并将其发送到服务器端来执行,而不是创建间接对象。
考虑到我们的项目正在使用GWT,这意味着DetachedCriteria将在Javascript领域构建,这是一个理智的想法,还是可行的?
答案 0 :(得分:3)
不,这不是一个明智的想法: - )
GWT代码应该处理表示逻辑。数据在表示层中的显示方式不一定与数据存储在数据库中的方式相匹配,表示层甚至不知道在数据访问层中使用了Hibernate。构建Criteria对象是数据访问层的角色。
我会使用某种包含搜索条件的DTO,将此DTO传递给我的服务层,这会将其提供给数据访问层(根据上下文具有潜在的附加搜索标准),这将构建一个Hibernate标准对象。
考虑一下:想象一下,由于Criteria API的限制,将来需要在HQL或SQL中完成请求。必须彻底改变演示和服务层是否正常?