有人知道如何使用Spring数据JPA获得一个列吗?我在我的Spring Boot项目中创建了一个存储库,如下所示,但总是得到{“cause”:null,“message:“persistenentity不能为null!”)
访问Restful URL时出错。
@RepositoryRestResource(collectionResourceRel = "users", path = "users")
public interface UsersRepository extends CrudRepository<Users, Integer> {
@Query("SELECT u.userName FROM Users u")
public List<String> getUserName();
}
然后,如果我访问像
.../user/search/getUserName
这样的Restful URL,我会得到错误:{"原因":空,"消息":"持久性实体不得为空!"}
这对我有用。
public interface UserDataRepository extends JpaRepository<UserData, Long> {
@Query(value = "SELECT emp_name FROM user_data", nativeQuery = true)
public List<Object[]> findEmp_name();
}
System.out.println("data"+ userDataRepository.findEmp_name());
上面这行给了我这个结果:
数据[abhijeet, abhijeet1, abhijeet2, abhijeet3, abhijeet4, abhijeet5]
概念是:在实体类中创建一个只包含所需即时变量的构造函数。构造器和使用下面的存储库中所示的方法。
假设您有一个如下所示的接口存储库
>
仓库实现:
public interface UserRepository<User> extends JpaRepository<User,String>
{
@Query(value = "select new com.org.User(usr.userId) from User usr where usr.name(:name)")
List<User> findUserIdAlone(@Param("name") String user);
}
控制器
@RestController
public class UserController
{
@Autowired
private UserRepository<User> userRepository;
@Res
public ResponseEntity<User> getUser(@PathVariable("usrname") String userName)
{
User resultUser = usrRepository.findUserIdAlone(userName);
return ResponseEntity.ok(resultUser);
}
}
public class User
{
private String userId,userName;
public User(String userId)
{
this.userId=userId;
}
// setter and getters goes here
}
创建投影界面
public interface UserNameOnly {
String getUserName();
}
然后在你的仓库界面中返回那个类型而不是用户类型
public interface UserRepository<User> extends JpaRepository<User,String> {
List<UsernameOnly> findNamesByUserNameNotNull();
}
投影界面中的get方法必须与JPA存储库中定义类型的get方法匹配,在本例中为User。“FindBysomePropertyontheObjectThatNotNull”允许您根据某些条件获取实体列表(与Iterable相反),对于findAll,如果唯一标识符(或任何其他非null字段)不为null,则可以简单地获得实体列表。
Mine当前使用的是application.properties文件中包含: 提前致谢
我有下表 我的表格 id|col1|col2|col3|col4|col5 我使用的是spring数据。我有以下存储库/DAO类 我想取一些列,比如在一个道号中我想取col1和col2,在另一个道号中我想取col1、col3、col5等等... 我想要
我正在使用Spring JPA执行所有数据库操作。但是,我不知道如何在Spring JPA中从表中选择特定的列? 例如:
我试图使用jpa组件来选择从标题中获取的id。我在文档中找到了一个使用本机select查询的示例: 我试图用${header.id}替换“1”常量: 这似乎不管用,我明白了: 也许还有别的方法可以让它发挥作用?
我正在编写一个JavaFX应用程序,该应用程序需要与一个SQLite数据库(存储为数据库)进行通信。db文件,用户已从其文件系统中选择。这可以是任何一个。我在构建时不知道的db文件。 我希望使用Spring/JPA2,但据我所知,它只允许使用在构建时配置的数据库。我想要的东西在Spring/JPA2中可能吗?如果可能,我将如何实现?
我在OpenJFX中使用Spring JPA。这个项目是JavaFX weaver,只需在pom中添加spring启动数据jpa。 然而,我的Spring JPA的开始时间是15-20秒,在Spring初始化之前,UI不会显示。当用户启动应用程序时,每次都要花很多时间! 作为一种解决方法,我尝试创建一个没有Spring的简单java fx应用程序(在这里使用这个演示),然后从main方法开始,通过