我正在使用Java 11和Sping Boot 2.5。我有一个带有@Transient字段的JPA实体
@Entity
public class MyEntity {
...
private String name;
...
@Transient
private String group;
}
和JPA存储库
public interface MyEntityRepository
extends JpaRepository<MyEntity, Long>, JpaSpecificationExecutor<MyEntity> {
...
...
}
MyEntity和Gruop之间的关系是my_entity表有一个group_id列,它链接到group表的主键(名为“id”)。有没有一种方法可以覆盖“findAll”以检索MyEntity的所有列和附加的“group”String字段?我不希望使用@OneToMany注解将整个Group对象链接到MyEntity类。
2条答案
按热度按时间vawmfj5a1#
晚安朋友,
我认为,由于JPA不使用@OneToMany,因此无法了解表之间的关系,您必须手动执行此操作,findAll()方法的示例;
whlutmcx2#
您可以编写一个带有自定义查询的函数来联接这两个表:
沿着于(还没试过)
但是它不会返回MyEntity类型,您必须将结果Map到其他类型。
但是,您不应该使用@Transient组,而应该将其作为group_id列。
另请参阅此blog