子级有一个名为name的参数。因此,我希望使用像“%name%”
一样进行查询,这样查询就会返回一个包含查询找到的所有子项的列表。
我想做这样的事情:
@Query("select c from Parent c where lower(c.name) LIKE lower(CONCAT('%', :name, '%')) ")
List<Parent> findByNameLIKE(@Param("name") String name);
但是使用一个父级的子级,我会使用父级的id来搜索它。我不知道我是不是解释得很好,问题是我还没能实现班与班之间的衔接。
@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;
@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%。而我不知道如何做到这一点。谢了!
如果在父实体父实体
中有子实体,如下所示:
@Entity
class Parent {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
...
@OneToMany(mappedBy = "parent")
private List<Child> childs;
....
然后可以使用如下查询:
@Repository
public interface ParentRepository extends JpaRepository<Parent, Long> {
List<Parent> getAllByChildsNameLike(String childName);
}
spring数据将为您生成查询。
@Repository
public interface ChildRepository extends JpaRepository<Child, Long> {
List<Child> getAllByParentIdAndNameLike(Long parentId, String name);
}
@Query("select c from Child c where c.parent.id = ?1 and c.name like ?2")
List<Child> getChilds(Long parentId, String name);
选择e from(从表中选择e name e order by e.refid desc)作为表名e,其中(rownum)介于:satrt和:end之间 我得到的错误为"org.hibernate.hql.internal.ast.QuerySynTaxExcema:意外令牌:(近第1行,第15列" Hibernate查询:从table_name其中rownum之间:start和:end顺序由re
问题内容: 我正在使用Hibernate对数据库进行一些大查询,有时会遇到超时问题。我想避免在每个或上手动设置超时。 我可以为Hibernate配置提供任何属性,为我运行的所有查询设置可接受的默认值吗? 如果没有,如何在Hibernate查询上设置默认超时值? 问题答案: JPA 2定义了 javax.persistence.query.timeout 提示以指定默认超时(以毫秒为单位)。Hibe
我的ParkingLotEntity: 我的Jpa存储库接口 上面的两个方法运行良好,但问题是我还需要从结果集到第二个方法“GetAllParkingLotCurrentlyWorkingInRegionOfRadius”中的位置的任何停车场之间的距离!在SQL Server中,我的定义函数已经计算出了距离。方法2的结果集是成功的,但没有返回距离(这是我的需要),只是一组parkingLotEnt
问题内容: 我正在尝试将我的命名查询放入orm.xml(与persistence.xml一起放入META-INF中),但是hibernate / jpa似乎忽略了我的orm.xml。 当我尝试使用em.createNamedQuery(“ myQuery”)创建命名查询时,它返回找不到该查询的信息。 我使用注释,我想在orm.xml中外部化我的命名查询(仅此)。 这是我的persistence.x
我一直在使用带有hibernate的JPA 2.0作为我的网络应用程序的供应商。对于其中一个数据库查询,我使用JPA标准生成器API来构造动态查询。我已经能够让它像预期的那样工作了。 查询在两个表A之间有一个读取连接 我还使用setMaxResults来限制返回给用户的记录数 仅供参考,数据库中大约有400条记录。 当我在日志中看到查询结果时,我看到它加载了内存中的所有400条记录。但是,由于设置