【发布时间】:2021-11-16 11:12:02
【问题描述】:
我想知道如何在 Spring boot 中使用它们的名称作为参数来查询一些子对象。
假设我有一个班级家长,与孩子有一对多关系。
孩子有一个叫名字的参数。所以我想使用like "%name%" 进行查询,这样查询会返回一个包含查询找到的所有子项的列表。
我想做这样的事情:
@Query("select c from Parent c where lower(c.name) LIKE lower(CONCAT('%', :name, '%')) ")
List<Parent> findByNameLIKE(@Param("name") String name);
但是使用一个父母拥有的孩子,我会使用父母的 id 来搜索它。不知道我解释的好不好,问题是我一直没能实现类之间的join。
谢谢!
编辑。这些是我的课程:
公司
@Entity(name = "Compania")
@Table(
name = "compania"
)
public class Compania {
@Id
@SequenceGenerator(
name = "compania_sequence",
sequenceName = "compania_sequence",
allocationSize = 1
)
@GeneratedValue(
strategy = GenerationType.AUTO,
generator = "compania_sequence"
)
@Column(
nullable = false
)
private Long id;
@Column(
name = "name",
nullable = false,
unique = true
)
private String name;
@Column(
name = "bajas"
)
private String bajas;
@OneToMany(
cascade = CascadeType.ALL,
fetch = FetchType.LAZY,
orphanRemoval = true
)
private List<DefaultGroup> default_group;
还有我的子班,default_group
@Entity
@Table
public class DefaultGroup {
@Id
@SequenceGenerator(
name = "defaultGroup_sequence",
sequenceName = "defaultGroup_sequence",
allocationSize = 1
)
@GeneratedValue(
strategy = GenerationType.SEQUENCE,
generator = "defaultGroup_sequence"
)
@Column(
nullable = false
)
@JsonIgnore
private Long id;
@Column(
name = "idRef",
nullable = false
)
private int idRef;
@Column(
name = "name",
nullable = false
)
private String name;
@Column(
name = "path"
)
private String path;
@ManyToOne()
private Compania compania;
所以我想将 defaultGroups 分配给 ID 为 1 的 Compania,其中 defaultGroup 的名称类似于 %x%。我不知道如何实现这一点。谢谢!
【问题讨论】:
标签: java spring-boot api hibernate jpa