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
Jpa 相同实体类名但不同包上的Spring数据存储库_Jpa_Spring Data Jpa - Fatal编程技术网

Jpa 相同实体类名但不同包上的Spring数据存储库

Jpa 相同实体类名但不同包上的Spring数据存储库,jpa,spring-data-jpa,Jpa,Spring Data Jpa,我有两个具有相同名称的实体类,但它们位于不同的包中,并且具有不同的Id package sample.visa; @Entity @Table(name="APP_VISA") public class Application { @Id private Integer id; ... } 然后,我有一个Spring数据存储库,可以从其中一个实体类中检索 package sample.student; import org.springfram

我有两个具有相同名称的实体类,但它们位于不同的包中,并且具有不同的Id

package sample.visa;

@Entity
@Table(name="APP_VISA")
public class Application
{
    @Id
    private Integer id;
    ...
}

然后,我有一个Spring数据存储库,可以从其中一个实体类中检索

package sample.student;

import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface ApplicationRepository extends CrudRepository<sample.student.Application, String>
{   
}


有没有办法让存储库以应用程序为目标?或者重命名该类是解决此问题的唯一方法?

只需重命名该类,我认为不能使用同名的两个类(实体)。尝试重命名它,然后再次调用它,应该可以:)

对于一个项目,两个不同的实体不可能有重复的名称,即使这些实体位于两个不同的包中

实体名称必须是唯一的。当不同包中的两个实体类共享相同的类名时,需要显式设置实体名以避免冲突


在JPQL中,我可以显式地指定完整的类名(例如,从sample.visa.Application obj中选择obj,其中obj.id=?),让JPA查询正确的表。所以我只是想知道在使用Spring数据时是否可能。但似乎使用不同的类名是摆脱它的最佳方法。
package sample.student;

import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface ApplicationRepository extends CrudRepository<sample.student.Application, String>
{   
}

java.lang.IllegalArgumentException: org.hibernate.QueryException: could not resolve property: studentId of: sample.visa.Application