为了账号安全,请及时绑定邮箱和手机立即绑定

Django ORM到Spring Hibernate的映射

Django ORM到Spring Hibernate的映射

千巷猫影 2021-05-14 22:31:47
对于在spring / hibernate中包含User实体的userRepository,最接近的命令(如果有命令)是什么?通过PK / ID获取对象: User.objects.get(id=2)通过字段获取对象: User.objects.get(name="david", age=20)按字段获取对象: User.objects.filter(name="david")按字段删除对象: User.objects.filter(name="david").delete)通过字段更新对象: User.objects.filter(name="david").update(name="dave")我将如何在Java / Spring中从UserRepository中执行上述操作:public interface UserRepository extends JpaRepository<User, Integer> { }
查看完整描述

1 回答

?
猛跑小猪

TA贡献1858条经验 获得超8个赞

UserRepository像这样更新您的内容:


public interface UserRepository extends JpaRepository<User, Integer> {

    User findOneByNameAndAge(String name, int age); // Answer point 2


    List<User> findByName(String name); // Answer point 3


    @Modifying

    @Query("delete from User u where u.name = ?1")

    int deleteByName(String name); // Answer point 4


    @Modifying

    @Query("update User u set u.name = ?1 where u.name = ?2")

    int updateByName(String newName, String oldName); // Answer point 5

}

请注意,对于您的问题的第1点,JpaRepository已经为您提供了此方法:


userRepository.findOne(2);


使用方法如下:


// Provide necessary annotations..

public class UserRepositoryIntTest {


    @Autowired UserRepository userRepository;


    @Test

    public void testThemAll() {

        this.userRepository.findOne(2); // 1

        this.userRepository.findOneByNameAndAge("david", 20); // 2

        this.userRepository.findByName("david"); // 3

        this.userRepository.deleteByName("david"); // 4

        this.userRepository.updateByName("dave", "david"); // 5

    }


}


查看完整回答
反对 回复 2021-05-19
  • 1 回答
  • 0 关注
  • 104 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信