我想在我的项目中使用SpringDataJPA存储库。通常我创建自己的存储库
interface ProductRepository extends JPARepository<Product, Long>
但是,我想提供符合以下条件的更复杂的情况:
>
我有一个具有共同定义的基本实体:
@MappedSuperclass
public abstract class AbstractBaseEntity {
@GeneratedValue(strategy = GenerationType.AUTO)
@Id
@Column(name = "ID", nullable = false)
private Long id;
...
}
我有扩展上述实体的所有其他实体,例如:
@Entity
@Table(name = "bread")
public class Bread extends AbstractBaseEntity {
@Column
String type;
...
}
和
@Entity
@Table(name = "butter")
public class Butter extends AbstractBaseEntity {
@Column
String weight;
...
}
公共接口 MyBaseRepository
然后定义几个常用的方法,然后如下使用它:
公共接口面包库
或
公共接口ButterRepository扩展了MyBaseRepository
问题是我不能这样做。当我定义MyBaseRepostory时,如果我使用:
我的基本存储库
当我运行真实查询时,出现了一个错误,即“实体没有属性类型”。如果我只使用
扩展 Jpa存储库
我得到一个错误,对象未映射。如果我尝试
Jpa存储库
它只是因为意外的绑定错误而失败。
我错过了什么吗?或者这对于Spring Data JPA是不可行的?
谢谢你!
我知道这是一个旧线程,但我在尝试定义像MyBaseRepostory这样的存储库时遇到了同样的错误
在我的案例中,错误是:
无法为方法公共抽象MyBaseRepository.someMethod()创建查询;不是实体:AbstractBaseEntity
关键是JPA试图实现所有扩展
JpaRepostory
的接口,但在MyBaseRepostory上做不到
解决方案是注释
MyBaseRepository。
在GSON中获取对象列表 遗憾的是,返回的是StringMaps数组,而不是类型。T被解释为另一个泛型类型,而不是我的类型。有什么办法吗?
阅读有关在DAO层中使用Java泛型的信息,我怀疑将其应用于spring数据存储库。我的意思是,使用 spring 数据存储库,你有这样的东西: 但是如果我有其他10个实体,我必须创建10个类似于上面的接口来执行CRUD操作等等,我认为这不是很可扩展的。Java Generics和DAO是关于创建一个接口和一个实现,并将其用于实体,但使用Spring数据存储库,我必须为每个实体创建一个界面,因此。
问题内容: 背景 将列数据类型映射到其对应的Java类。 问题 查询从数据库返回元信息: 例如,此查询返回(自引用): 其中“ dictionary”是架构名称,“ resource_bundle”是object_name,“ column_name”是column_name。 要做类似的事情会很棒: 并返回以下查询: 然后使用JDBC发现已映射到。 问题 在PostgreSQL中,如何给定架构名
我正在开发一个将在MySql和MS SQL上运行的应用程序。 我有一个字段是空间的“几何”类型。 通过使用: (点是org.springframework.data.geo.point) Hibernate正确创建字段(hbm2ddl)。 但插入任何一点都不起作用。I get:数据截断:无法从发送到“几何体”字段的数据中获取几何体对象 我使用spring boot jpa启动器。。而不是直接冬眠。
当我使用Spring Data Neo4j(SDN)查找节点实体时,我遇到了一些奇怪的行为。如果我使用GraphRepository.findOne(long),它将返回一个具有该标识符的实体,即使该实体不是同一类型。 这就是我(非常)简化的实体结构的样子: 对于每种实体类型,我都创建了这样的存储库: 我为我的服务层类准备了一个抽象基类。这是它们大致的样子: 当我执行以下代码时,结果不如预期: 您
我正在努力让Spring JPA Data为我工作,但一直在努力。问题出在这里。 我有两个域类,它们之间有一个简单的一对多关系: 我已经为每个类设置了存储库接口:CardRepository,扩展JpaRepository的用户存储库,两个存储库都注入到服务中 非常基本的设置。someMethod() 出现问题,其中我用它的标识符查询了一个用户,然后尝试获取映射@OneToMany的列表,然后发生