如何找到与其他表字段相关的引用键(使用JPA)?

时间:2015-07-22 03:47:19

标签: java mysql spring hibernate jpa

例如,表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; } 

1 个答案:

答案 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);

我希望我也能做到。