Jpa 相同实体类名但不同包上的Spring数据存储库
我有两个具有相同名称的实体类,但它们位于不同的包中,并且具有不同的IdJpa 相同实体类名但不同包上的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
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