我有一个控制器尝试用可选字段搜索。JPA实体类定义为:
package demo;
import javax.persistence.*;
@Entity
public class UploadFile {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
private String name;
public UploadFile() {
}
public UploadFile(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@Override
public String toString() {
return "UploadFile{" +
"id=" + id +
", name='" + name + '\'' +
'}';
}
}
@RequestMapping(value = "/searchFile", method = RequestMethod.GET)
public @ResponseBody
List<UploadFile> searchFile(@RequestParam("id") Optional<Integer> id, @RequestParam("name") Optional<String> name) {
UploadFile newFile = new UploadFile();
if (id.isPresent()) {
newFile.setId(id.get());
}
if (name.isPresent()) {
newFile.setName(name.get());
}
System.out.println("new File: " + newFile);
//uploadFileRepository is a JpaRepository Class
return List<UploadFile> files = uploadFileRepository.findAll(Example.of(newFile));
}
ID NAME SIZE TYPE
1 index 111 html
new File: UploadFile{id=1, name='null'}
我认为您不能使用示例
按ID查找记录。(这是很合乎逻辑的,如果您知道这个id,那么您为什么需要这个特性呢?)
因此,如果请求中提供了id参数,则直接使用findById(id)
,否则填充示例对象的所有提供属性并使用findAll(example.of(example))
方法。
我必须用一个特定的名称(我使用spring和Jpa)来命名扩展CrudRepository的接口,即。 所以在本例中,我有一个名为UserRepository的实体 我尝试了注释 但这行不通...
是否有一种方法可以使用来完成这一任务,而不需要为每个Patamenter组合创建大量/语句?
我目前正在spring boot中编写一个应用程序,并正在构建自己的自定义存储库。 首先,这里是有问题的代码: 启动应用程序后,它会失败,并出现以下堆栈跟踪: 非常感谢您的帮助:) 注意:此设置以前与JPA存储库一起使用,因此这不是服务调用它的问题,而是新服务存储库的故障。
我在JpaRepository中使用Jpql查询。问题是,每次使用可选返回调用方法时,都会出现以下错误: java.lang.ClassCastException: class[Ljava.lang.Object;不能强制转换为类com.netpos.pagvendas.campaignuser.entity.活动用户([Ljava.lang.Object;在加载器'bootstrap'的模块ja
问题内容: 我是一名Swift新手,我正在努力使Structs具有可选属性。我已经做了很多搜索,找到了可以解决的问题,但是效率低下,所以想知道是否有更好/更易管理的方法来实现我的目标。 我想使用Structs来代表一家企业,但我事先不知道任何特定企业可能具有哪种属性组合。这似乎意味着我必须为每种可能的参数组合创建一个init()。 这是一个简化的示例(我还有更多属性): 然后,我可以像这样初始化类
我一直有这样一个问题,即我无法使用querydsl对一个具有可为空外键的表进行正确的筛选。我把我的用例简化成一个非常简单的场景。 假设我们有两个实体,MyEntity和TimeRangeEntity。我的实体只有一个ID和一个TimeRangeEntity的外键。TimeRangeEntity只有开始时间、结束时间和ID。它们都从BaseEntity扩展,它只有带有@ID注释的ID。 我还编写了一