computer-database-jpa
全部标签 在spring容器中,代码如下:publicclassA{@Transactionalpublicvoidm1(){...b.m2();//callinanewtransaction...}}publicclassB{@Transactional(propagation=Propagation.REQUIRES_NEW)publicvoidm2(){...}}为m2()创建的事务究竟何时被提交?一旦m2()调用结束,或者一旦m1()调用结束?Whendoes@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)commi
一些令人困惑的解释:冲洗();刷新是将底层持久存储与内存中保存的持久状态同步的过程。它会更新或插入正在运行的事务中的表,但它可能不会提交这些更改。如果更改无论如何都只会在提交后持久保存在数据库中,那么为什么要在代码中间进行刷新。并且在运行刷新之后,如果对托管对象进行了任何更改,那么将抛出异常,或者这些将被同步,然后将被保留。如果他们得到同步,那么为什么首先要刷新。 最佳答案 理论上,您(作为JPA的用户)永远不应该(或在极少数情况下)调用flush()。Flushingistheprocessofsynchronizingtheun
我有三个实体:A、B和C,它们之间的关系如下:classA{@ManyToManyListbs;//otherattributesandgettersetters}classB{@ManyToManyListcs;//otherattributesandgettersetters}classC{//otherattributesandgettersetters}但是从我当前的实体类中,我可以使用@JoinTable在任意2个表之间建立关系。但我想要的是将所有3个实体之间的关系保存在一个单独的表中,将这些实体的主键作为列。(外键)如果我们假设实体B和C已经保存(插入)到数据库中,我将插入
我正在使用springdatajpa和querydsl,并且陷入了如何编写简单的查询以左连接两个表的问题。假设我有一个Project实体和一个在Project中定义了OneToMany关系的Task实体,我想做类似的事情:select*fromprojectpleftjointasktonp.id=t.project_idwherep.id=searchTermselect*fromprojectpleftjointasktonp.id=t.project_idwheret.taskname=searchTerm在JPQL中,它应该是:selectdistinctpfromProjec
我有一个类层次结构:abstractDomainObject{...@Id@GeneratedValue(strategy=GenerationType.SEQUENCE,generator="SEQ")@SequenceGenerator(name="SEQ",sequenceName="SEQ_DB_NAME")@Column(name="id",updatable=false,nullable=false)privateLongid;...}BaseClassextendsDomainObject{...//Fillinblankherewherethisclass's@Idwi
我在使用JPA2.0的CriteriaBuilder构建动态查询时遇到了一些困难。我猜我有一个很常见的用例:用户提供任意数量的搜索参数X和/或连接:像:selectefromFoowhere(name=X1orname=X2..orname=Xn)CriteriaBuilder的方法或方法不是动态的:Predicateor(Predicate...限制)想法?sample? 最佳答案 在你的情况下,我宁愿使用Expression#in(Collection)避免循环和构建复合Predicate动态:CriteriaBuildercb
我有一个JPA程序,其中EclipseLink是持久性提供程序。当我合并用户实体、更改其ID并尝试再次合并同一用户实例时,会引发错误。我重写了我的代码,以最简单的方式说明我的问题。Useruser=userManager.find(1);userManager.merge(user);System.out.println("Userismanaged?"+userManager.contains(user);user.setId(2);userManager.merge(user);以上代码不在事务上下文中。userManager是一个注入(inject)了EntityManager的
我有下面提到的三个类(class)。我正在尝试创建一个规范来过滤链接表中匹配的数据。publicclassAlbum{privateLongid;privateListalbumTags;}publicclassTag{privateLongid;privateStringcategory;}publicclassAlbumTag{privateLongid;privateAlbumalbum;privateTagtag;}在上面给出的模式中,我试图找到的是Album表中所有专辑的列表以及AlbumTag中的链接。我想要实现的SQL,不必相同,如下所示select*fromAlbumA
我正在使用hibernate3.5和JPA2.0构建桌面应用程序。我有2个jar,定义每个实体和DAO的库,包如下所示:org.my.package.modelsorg.my.package.models.daoorg.my.package.models.utils在org.my.package.utils中,我定义了用于获取EM和EMF实例的hibernate实用程序类,这意味着该库已绑定(bind)到持久性单元名称,但目前这不是问题(无论如何你可以向我推荐一个更好的管理方式)第二个jar构建如下:org.my.package.appMETA-INF是在项目的根目录中定义的,这意味着
我无法理解带有JPA存储库的简单SpringMVC项目出了什么问题。能否给个提示。域:packagecom.test.app;@Entity@Table(name="foo_table")publicclassFooDomain{@Id@Column(name="id",unique=true,nullable=false)privateIntegerid;@Column(name="text",nullable=false)privateStringtext;//getters&settershere...存储库packagecom.test.app;@RepositoryDefin