例如,表A具有主键ID,引用的id为bid;表B的主键ID也等于bid,filedB等等。
我的问题是,通过使用Java JPA如何通过B.fieldB找到?
ADAO extends CrudRepository{
findBy(____);//find by referenced bid related table's fieldB.
}
实体类示例:
@Entity @Table(name="A") public class A implements Serializable{ id; bid; };
@Entity @Table(name="B") public class B implements Serializable{ id; fieldB; }
答案 0 :(得分:0)
根据@manish的建议,这对我很有帮助。
首先,使用注释来定义A和B之间的关系;
@Entity @Table(name="A") public class A implements Serializable{ id; bid;
@JoinColumn(name = "bid") @ManyToOne B b;
};
@Entity @Table(name="B") public class B implements Serializable{ id; fieldB; }
然后在我的A-Repository中findByBFieldB(string fieldB)
;
另一种方法:使用带注释的查询如下:
@Query(value = "SELECT a.* FROM A a LEFT JOIN B b ON a.bid=b.id WHERE b.field LIKE :someString", nativeQuery = true);
我希望我也能做到。