我正在研究Spring Boot,并且已经创建了多个实体,现在的问题是从控制器检索数据以将其保存在db中。
在网上冲浪时,我了解到我必须以这种方式使用JPARepositery
或CrudRepositery
:
有关用户实体的示例
public interface UserRepository extends CrudRepository<User, Integer> {
}
并保存
User user = new User();
userRepository.save(user);
但是,如果我有很多实体,是否需要为每个实体创建一个存储库?
我已经阅读了有关Session,FactorySession和Transaction的信息,它们与Spring Boot兼容吗?怎么运行的?和@Transactional
标记其工作原理?
预先感谢
答案 0 :(得分:0)
是的,通常您需要为每个Repository
创建一个Entity
。这也是一个好习惯,因为您将与同一Entity
相关的操作和查询放在同一Repository
中。
是的,您可以获得一个Session
和一个FactorySession
对象(Hibernate),但是我建议您不要直接使用Hibernate。相反,最好使用Spring Data或JPA机制来访问数据库(就像使用Repository
一样)。原因是因为Hibernate是JPA标准的实现,并且今天我们使用JPA访问数据库(因为它掩盖了ORM的确切实现)。这样,您以后就可以(可能)用另一个JPA实现(例如EclipseLink)替换Hibernate,而无需更改代码(理论上)。但是,在大多数项目中,您会发现正在使用Hibernate。
是的,Transaction
也是Spring注释,也是Spring Boot中重要的数据库事务处理机制。