gpt4 book ai didi

java - 列出一对多关系中的 JPA where 子句

转载 作者:行者123 更新时间:2023-12-02 12:03:39 24 4
gpt4 key购买 nike

实验室包括一些服务器。我想做的是列出属于实验室的服务器。例如获取属于“abc”实验室且其id为1的服务器。

以下代码获取所有服务器:

@RequestMapping(value = "servers", method = RequestMethod.GET)
public List<Server> list() {
return serverRepository.findAll();
}

实体:

public class Server {

@Id
@GeneratedValue
@Column(name = "ID")
private Long id;

@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="LAB_ID", referencedColumnName = "ID")
private Lab lab;
}

实体;

public class Lab {

@Id
@GeneratedValue
@Column(name = "ID")
private Long id;

@NotNull
@Column(name = "LAB_NAME")
private String labName;

@OneToMany
private Set<Server> servers;
}

Angular :

$scope.getServers= function () {
$http.get('services/servers').then(function (response) {
$scope.servers= response.data;
});
};

存储库:

public interface ServerRepository extends JpaRepository<Server, Long>{

}

最佳答案

像这样编辑你的映射

实验室实体

@OneToMany(mappedBy="lab")
private Set<Server> servers;

服务器实体

@ManyToOne
private Lab lab;

现在您可以像这样编写JPQL

public interface ServerRepository extends JpaRepository<Server, Long>{

@Query("Select s from Server s where s.lab.labName = :name and s.lab.id = :id")
List<Server> getServers(@Param("name") String name, @Param("id") Long id);

}

关于java - 列出一对多关系中的 JPA where 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47063860/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com