Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
未映射db列但通过查询获得的JPA实体字段_Jpa - Fatal编程技术网

未映射db列但通过查询获得的JPA实体字段

未映射db列但通过查询获得的JPA实体字段,jpa,Jpa,我有两个db表:树和叶。这显然是一对多的关系。我想在树实体中有一个leaveScont字段——它不应该被持久化(@Transient),而是在每次实体加载到上下文中时通过查询获得。有可能实现吗 我知道我可以创建@OneToMany并获取集合的大小,但我对查询方法非常感兴趣。您可以定义一个命名查询,并在需要时执行它 否则,您可以使该字段持久化,并确保在每次添加叶时更新该字段。查询用于与数据库交互。如果将属性标记为@Transient,则此属性将不会持久化到数据库中,并且无法询问数据库有关此属性的信

我有两个db表:树和叶。这显然是一对多的关系。我想在树实体中有一个leaveScont字段——它不应该被持久化(@Transient),而是在每次实体加载到上下文中时通过查询获得。有可能实现吗


我知道我可以创建@OneToMany并获取集合的大小,但我对查询方法非常感兴趣。

您可以定义一个命名查询,并在需要时执行它


否则,您可以使该字段持久化,并确保在每次添加叶时更新该字段。

查询用于与数据库交互。如果将属性标记为@Transient,则此属性将不会持久化到数据库中,并且无法询问数据库有关此属性的信息。就好像JPA不存在。因此,您不能将瞬态属性放入查询中。TBH我从未尝试在查询中访问瞬态属性,因此我无法100%确定,但无论如何,您不应该这样做,因此它不应该工作。

问题是我无法修改db结构。我将尝试详细说明-每个叶子都有一些描述其状态的属性,例如isInfested或isGreen。现在我有了通用网格,它接受实体类,我必须显示每棵树的绿色和非绿色叶子的数量。你将如何处理这个问题?我将通过一个查询来处理这个问题。