草庐IT

Hibernate

全部标签

java - Spring Data REST + JPA 从 OneToMany 集合中删除 [不是所有者端]

目前我们有一个问题(一个众所周知的问题)SpringDataJPA+SpringDataREST(HibernateasJPA实现)在尝试更新不是拥有方的集合(关系)时。映射如下:@Entity(name=Product.NAME)publicclassProduct{...@OneToMany(mappedBy="baseProduct",fetch=FetchType.LAZY,targetEntity=Variant.class)ListgetVariants(){...在另一个变体方面:@Entity(name=Variant.NAME)publicclassVariantex

java - 无法自动配置数据源 : 'spring.datasource.url'

我的项目使用了MySQL、JavaFX、SpringBoot、SpringDataJP和Hibernate框架/技术。这是我的POM文件。4.0.0com.nubeclickpos0.0.1-SNAPSHOTPOSNubeClickSistemadepuntodeventa(PointOfSale).org.springframework.bootspring-boot-starter-parent2.0.1.RELEASEUTF-8UTF-81.81.7.121.2.171.81.8com.miglayoutmiglayout-javafx5.0commons-langcommons

java - Hibernate @Formula 不包含 Schema

我有一个具有属性@Formula的实体,如下所示:@Entity@Table(name="areasAuxiliar")publicfinalclassAreaAuxiliarimplementsSerializable{@Id@Column(name="idArea")privateIntegeridArea;@Formula("RUTAAREA(idArea)")privateStringruta;当我将我的hibernate配置为指向Oracle数据库时,我没有遇到任何问题,但是,当我切换到SQLServer时,hibernate不包括shema并且查询失败,为hibernate

java - 为什么 hibernate 执行两个查询以预加载 @OneToOne 双向关联?

我有实体A有一个B实体,B有一个A与@OneToOne双向关联。现在,当我找到所有A记录时,hibernate在B上执行两个带有左外连接的查询,如下所示:selecta.id,a.id_b,a.field1,b.id,b.field1fromAasa,BasbleftouterjoinbONb.id=a.id_b;selecta.id,a.id_b,a.field1,b.id,b.field1fromAasa,BasbleftouterjoinbONb.id=a.id_bWHEREb.id=?第一次查询加载A和B字段是可以的,但是为什么要执行第二次查询重新加载A?我认为这个查询加载了B

java - 来自多个数据库的 Hibernate 实体

我们的数据模型被分成两个数据库的模式。除了在两者之间架起桥梁的少数单键关系外,这些模式是独立使用的。没有跨越两个数据库的写入事务。类似这个问题Doingajoinover2tablesindifferentdatabasesusingHibernate,我们想使用Hibernate来处理加入实体。我们不能使用数据库解决方案(DB2上的联合View)。我们已经为Hibernate设置了两个独立的数据库配置(医生和患者),这在使用DAO显式访问特定session时完美运行。我们希望在调用DoctorBO.getExam().getPatient()时使用Hibernate自动检索实体,其中

java - 如何用jpa映射抽象集合?

我正在尝试找出是否有可能让JPA持久化具有具体实现的抽象集合。到目前为止,我的代码如下所示:@EntitypublicclassReportextendsModel{@OneToMany(mappedBy="report",fetch=FetchType.EAGER)publicSetitems;}@MappedSuperclasspublicabstractclassOpsItemextendsModel{@ManyToOnepublicRetailOpsBranchreport;}@Entity@Inheritance(strategy=InheritanceType.TABLE_

java - 为什么不推荐使用 buildSessionFactory()?

为什么buildSessionFactory()被替换为buildSessionFactory(ServiceRegistry)?ServiceRegistry的重要性是什么? 最佳答案 Hibernate的Jira上解释了这个原因https://hibernate.onjira.com/browse/HHH-2578CurrentlyaSessionFactoryisbuiltbythrowingabunchofstuffintoaConfigurationobject,stirringit,lettingitcometoaboi

java - JPA REQUIRES_NEW 事务到底什么时候提交

在spring容器中,代码如下:publicclassA{@Transactionalpublicvoidm1(){...b.m2();//callinanewtransaction...}}publicclassB{@Transactional(propagation=Propagation.REQUIRES_NEW)publicvoidm2(){...}}为m2()创建的事务究竟何时被提交?一旦m2()调用结束,或者一旦m1()调用结束?Whendoes@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)commi

java - 无法 Autowiring 。找不到 ... 类型的 bean

你能帮我解决为什么我不能Autowiring一个类吗??UserDaoImpl类:@RepositorypublicclassUserDaoImplimplementsUserDao{@AutowiredprivateSessionFactorysessionFactory;@OverridepublicvoidaddUser(Useruser){sessionFactory.getCurrentSession().save(user);}@OverridepublicListgetUsers(){returnsessionFactory.getCurrentSession().cre

java - Hibernate 拦截器 - 为什么在 onSave 之后调用 onFlushDirty?

计划我正在使用Hibernate为一个小项目实现createDate和lastUpdate时间戳。我使用EmptyInterceptor并根据我发现的建议解决方案重载提供的方法here.除非有一点细节,否则该解决方案工作正常。我想添加一个列来指示对象是否已经更新。我知道我可以通过简单地比较两个创建和更新的时间戳是否存在差异来实现这一点,但我需要让这个字段指示有一个更新。我使用在存储新对象时调用的onSave方法将wasUpdated值设置为“N”,表示没有更新。在onFlushDirty()方法中,我将此值设置为“Y”。问题当我创建并持久化一个新对象时,我会指出createDate和l