java - 规范 JPA - 内部 + where 子句

标签 java spring jpa spring-data-jpa specifications

我必须连接两个表并使用带有规范和 JPA 的Where 来过滤结果。不过我不太熟悉。

表格例如:

public class A {

 private Long id;

 private Long secondId;


 ...
}


public class daughterA {

 @JoinColumn (name = "id")
 private Long idA;

 ...
}

并且 WHERE 将应用于 secondaryId。

感谢大家的帮助,对于任何不准确之处,我深表歉意,我将从这些技术开始。

最佳答案

首先,您的联接似乎是一个一对多联接,因此您应该按原样进行:

  • 在父类中添加 One 注释,通过另一个类中的实例名称进行映射,此注释涵盖子类的对象的 Set 或 List
  • 在子类中添加ManyToOne注解,一个女儿只能有一个母亲,idA虽然不是Long,但指向父类,实际上是一个外键

    public class A{ 

     @Id
     private Long id;

     private Long secondId;

     @OneToMany(mappedBy="idA")
     private Set<daughterA > daughters;

     ...
    }


    public class daughterA {

     @ManyToOne
     @JoinColumn (name = "id")
     private A idA;

     ...
    }

对于 where 子句:

TypedQuery<Country> query =
  em.createQuery("SELECT d FROM daughterA d WHERE d.idA.secondId = :secondId ", Country.class);
  A results = query.setParameter("secondId",sencondId).getSingleResult();

关于java - 规范 JPA - 内部 + where 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57954880/

相关文章:

java - 方法返回 JSON "empty:false"尽管这个 JSON 有数据

hibernate - 如何避免 1 + n 数据库调用在 Hibernate 中进行双向可选的一对一关联?

java - JPA, hibernate 。如何从@TableGenerator 获取下一个值

java - 在 Java 中向 Negamax 添加 Alpha Beta 剪枝

java - java servlet 中的 session

java - 为什么这两个弧重叠?

java - 未能延迟初始化角色自定义 UserDetailsS​​ervice 的集合

Java 3d Arraylist 到 3d 数组

java - Spring Boot App 打包成 jar 后不提供静态资源

java - 用 Spring 注入(inject)字符串的快捷方式