Hibernate spring JPA)如何保存只提供外键并考虑服务的实体?

Hibernate spring JPA)如何保存只提供外键并考虑服务的实体?,hibernate,spring-mvc,Hibernate,Spring Mvc,我正在用Hibernate在SpringMVC上开发web应用程序 我的应用程序有控制器-服务层-DAO层 我有以下实体关系 如您所见,用户可以有许多注释(一对多关系) 当用户写入并保存评论时,我的web服务将从用户web请求中获取“用户id,评论” 然后我尝试保存注释,但我没有用户实体来保存 所以我应该首先找到具有user_id的用户实体,并将其设置为新的comment对象,然后通过CommentDao.save(commentEntity)保存它 那么,我的CommentService应该

我正在用Hibernate在SpringMVC上开发web应用程序

我的应用程序有控制器-服务层-DAO层

我有以下实体关系

如您所见,用户可以有许多注释(一对多关系)

当用户写入并保存评论时,我的web服务将从用户web请求中获取“用户id,评论”

然后我尝试保存注释,但我没有用户实体来保存

所以我应该首先找到具有user_id的用户实体,并将其设置为新的comment对象,然后通过CommentDao.save(commentEntity)保存它


那么,我的CommentService应该调用UserService来获取用户实体,还是我的CommentService应该使用UserDAO来获取用户实体?

是。您应该首先尝试获取该用户id的用户实体,该实体使您有机会验证具有该id的用户是否确实存在。如果它不存在,您可以报告错误


对于CommentService是否必须调用UserService或UserDAO才能获取用户实体,没有严格的规则。这取决于
UserService 35; getUser()
UserDAO#getUser()
之间的区别。如果它们没有任何区别,我更喜欢保持简单,并通过直接调用
UserDAO#getUser()
来减少额外的层。

DAO层的主要目标是处理持久性机制的细节。而服务层则位于it之上以处理业务需求