我是堆栈溢出和使用hibernate和mysql处理spring
jpa数据的新手。我为每个实体类创建了一个JpaRepository。但是现在我觉得我应该对所有实体使用一个存储库,因为在我的所有存储库中都有通用的CRUD操作方法。
save()
update()
delete()
findOne()
findAll()
除了上述方法之外,我的应用程序中还具有其他自定义方法。
我的目标是像这样实现GenericRepo
public interface MyGenericRepo extends JpaRepository<GenericEntity,Integer>
{
}
我的实体将像:
class Place extends GenericEntity
{
private Event event;
}
class Event extends GenericEntity
{
}
class Offer extends GenericEntity
{
private Place place;
}
class User extends GenericEntity
{
private Place place;
}
当我打电话给:
MyGenericRepo myRepo;
GenericEntity place=new Place();
myRepo.save(place);
它应该节省空间。
[http://openjpa.apache.org/builds/1.0.2/apache-openjpa-1.0.2/docs/manual/jpa_overview_mapping_inher.html#jpa_overview_mapping_inher_joined][1]
我已经参考了上面的链接,发现使用Joined和Table-Per-
Class策略的Jpa继承与我正在寻找的策略相似,但是它们都有一定的局限性,所以请告诉我是否应该尝试实现这种通用方法。我得到了任何演示代码,那么我将非常感激……
谢谢..
如何制作通用的JPA存储库?我应该这样做吗?为什么?
如果您想创建自己的Repos(而不是创建对您有用的spring数据),您的示例还不错,我在一个应用程序中使用了类似的策略。
以下是改进通用方法的一些想法:我在基本域中添加了ID信息,该信息由所有域对象实现:
public interface UniqueIdentifyable<T extends Number> {
T getId();
void setId(T id);
}
在下一步中,我创建了一个通用的CRUDRepo:
public interface CRUDRepository<ID extends Number, T extends UniqueIdentifyable<ID>>{
ID insert(T entity);
void delete(T entity);
....
}
我正在为CRUDRepo使用一个抽象类:
public abstract class AbstractCRUDRepo<ID extends Number, T extends UniqueIdentifyable<ID>> implements CRUDRepo<ID, T>, {...}
域存储库api现在看起来像:
public interface UserRepo extends CRUDRepo<Integer, User > {
User mySpecificQuery(..);
}
最后,您可以通过以下方式实现您的存储库:
public class UserRepoImpl extends AbstractCRUDRepo<Integer, User > implements UserRepo {
public User mySpecificQuery(..){..}
}
所以,当我试图更新我的构建时,我发现自己在挠头。渐变依赖项。com。Android支持:appcompat库版本26.0.2未解析。经过一段时间的搜索,我了解到我必须将Google的maven存储库添加到我的gradle项目文件中的存储库列表中。所以现在Google的maven repository和jcenter()都列出了。 那么,为什么谷歌现在托管自己的maven存储库,有什么理由不使用它呢
问题内容: 我在脚本中有一个表变量(不是存储过程)。两个问题: 如何删除表变量?删除表@varName会给出“错误的snytax”错误。 我应该一直这样做吗?我听说这是个好习惯。这样的小脚本真的有必要吗? 这是我的代码: 问题答案: 表变量自动是本地变量,并且会自动删除-您不必担心。
以下是我的模型:- 我的存储库和服务:- 控制器:- org.springframework.beans.factory.beanCreationException:创建类路径资源[org/springframework/boot/autocconfigure/orm/jpa/hibernatejpaconfiguration.class]中定义的名为“Entity ManagerFactory”
例如,下面是一个。它处理对象上的CRUD操作。如果我希望存储库也保存对象,我将如何更改下面的接口以容纳这两个对象呢?
我们正在研究一个包含大量DB表的Restful项目。虽然对这些表的操作几乎相同,主要是插入/更新/删除/提取(insert/update/delete/fetch)。 我的问题是: 我们是否必须为我们创建的每一个实体(域类)创建一个存储库(扩展JpaRepository),或者,有一个选项可以为所有实体创建一个能够处理上述所有功能的GenericRepository?即为所有人提供一个单一的Gen
我在一个在线订餐应用程序中使用Redux和React。 当用户从购物篮中删除一个商品时,我需要向服务器发出一个XHR请求,以计算购物篮的新总价。当这个XHR完成时,我更新redux存储并呈现新的价格。我使用Redux thunk来管理这个异步操作。 有一个问题是,用户连续快速地从购物篮中取出两件物品。用户删除第一项,我启动XHR以获得新价格。然后,用户单击一个按钮以删除第二个项目,并启动第二个XH