我有两个实体
@Entity
public class Language {
@Id
@GeneratedValue
private int id;
private String name;
private String isoCode;
}
并且所述另一实体
@Entity
public class MainEntity {
@Id
@GeneratedValue
private int id;
private String anotherField;
private Language language; //(here I want to return the full entity)
}
实体没有数据库关系,只有一个字符串字段。现在,我想查询MainEntity,但我想获取完整的实体
比如说
语言Name
| | 价值|
| - -|- -|
| 标识符|一个|
| 姓名|英语|
| 等代号|英文版|
主要实体
| | 价值|
| - -|- -|
| 标识符|一种|
| 姓名|某某|
| 语言|英文版|
我有资料库
public interface MainRepository extends JpaRepository<MainEntity, Integer>{
User findAll();
}
但我希望当我在主实体上进行搜索时,它会给我整个语言实体
例如,
语言.getName()
2条答案
按热度按时间zz2j4svz1#
使用本机查询读取JPA对象?请参阅这个简化的示例,在该示例中可以使用任何有效的本机SQL查询语法。
您可以将
Language getLanguage()
函数放到MainEntity类中。0md85ypi2#
如果您不想在
MainEntity
和Language
之间建立关系,则必须进行本机查询。(因为您不能同时进行jpql查询,因为您至少应该在MainEntity
中具有String language
,以便在Language
中的String isoCode
上进行连接,但据我所知,我认为您不希望这样做)。因此,您必须执行一个本机查询,返回一个here所述的接口在存储库中:
在MainEntity或更好的另一个dto中,你必须声明一个构造函数:
在服务层中,您必须从
IntermediateObject
构造AnotherDto
现在已经填充了语言对象。
无论如何,我建议Map实体,而不是做这一切。