草庐IT

computer-database-jpa

全部标签

java - JPA/hibernate : ManyToMany delete relation

我有两个类,比如Group和Person,它们具有在JoinTable中映射的多对多关系。如果我删除一个与组有关系的人,我想从连接表中删除条目(而不是删除组本身!)。我必须如何定义级联注释?我没有找到真正有用的文档,但有几个Unresolved董事会讨论...publicclassGroup{@ManyToMany(cascade={javax.persistence.CascadeType.?},fetch=FetchType.EAGER)@Cascade({CascadeType.?})@JoinTable(name="PERSON_GROUP",joinColumns={@Joi

java - 如何在 hibernate/JPA 中禁用自动更新

是否可以阻止hibernate自动更新持久对象?@TransactionalpublicResultTOupdateRecord(RequestTOrequestTO){Entityentity=dao.getEntityById(requestTO.getId());//nowupdatetheentitybasedonthedataintherequestTOValidationResultvalidationResult=runValidation(entity);if(validationResult.hasErrors()){//returnResultTOwithvalid

java - 指向 JPA/Hibernate 中同一实体的多个 @ManyToOne 字段

我有一个Order实体,它有一个billingAddress和一个shippingAddress。我还有一个Address实体。我试图让一个地址表同时包含送货地址和帐单地址,因为没有什么可以区分它们,并且帐单地址和送货地址在一个或多个订单中可以相同。我在Order的地址字段上使用了@ManyToOne,但我不确定实现此双向的正确方法。我有两个问题:@ManyToOne是否适合地址字段,因为它实际上是一个n:2关系,我只是使用两个单独的字段来表示?如果不是,我应该怎么做?假设1.没问题,我如何使映射双向(我应该在Address实体中使用什么注释?)?这可以通过在Address的注释中列出

java - 继承 JPA 和 Hibernate 问题

我在加载一些对象时遇到了一个奇怪的问题。我正在使用JPA1、hibernate-core版本3.3.0.SP1和hibernate-entitymanager版本3.4.0.GA假设我有这些JPA实体:@Entity@Table(name="SLC_ELE")@Inheritance(strategy=InheritanceType.JOINED)@DiscriminatorColumn(discriminatorType=DiscriminatorType.INTEGER,name=ElementoPrograma.C_ID_CTG_ELE)publicclassElement{..

java - 与 Bean Validation API 结合使用时,Hibernate 不遵循 JPA 规范?

这个问题是这个问题的后续问题:JPAConstraintViolationvsRollback我做了一些关于JPA和验证API(JSR-303)组合的测试。我在JPAspecifications中找到了以下内容(第101-102页):Bydefault,thedefaultBeanValidationgroup(thegroupDefault)willbevalidateduponthepre-persistandpre-updatelifecyclevalidationevents...IfthesetofConstraintViolationobjectsreturnedbythe

java - JPA DescriptorEventAdapter ChangeSet 始终为空

我正在尝试将更改跟踪器包含到我的JPA实体(到日志文件,而不是数据库),但是我的DescriptorEventAdapter返回的changeSet始终为空。我正在使用EclipseLink2.5.2、ojdbc6、spring-orm4.1.1。调用所有事件(包括preUpdateWithChanges)并将更改推送到数据库。我正在使用entityManager.merge(entity)来更新实体。HistoryEventListener.javapublicclassHistoryEventListenerextendsDescriptorEventAdapter{@Overri

java - Spring 启动(带 jpa 的 mysql): No bean named 'entityManagerFactory' available

开始构建(第一个)springboot应用程序,这是我的springboot主类(Fullcodeongithub)@EnableAutoConfiguration@SpringBootApplicationpublicclassApplication{publicstaticvoidmain(String[]args){SpringApplication.run(Application.class,args);}}这是pom.xml4.0.0com.exampledemo0.0.1-SNAPSHOTjardemoDemoprojectforSpringBootorg.springfr

Java - 用于保留的分布式 JPA 锁

我正在开发一个允许预订安排的遗留系统。该应用程序是无状态的REST,旨在水平扩展。但是,数据库在所有实例之间共享。在我得到关于设计和规模的讲座之前,这不是我的-必须充分利用糟糕的情况(或代码库)。最近我们发现了一个问题,即有重复的预订。我相信这是因为请求响应线程的性质。当前的过程是,接收请求,检查数据库是否有冲突的时间预订,如果没有,则插入。根据读取和插入之间的时间,两者都可能被插入。场景看起来像这样:|------|-------|-------|R1C1I1RSP-|--------|-------|---------|R2C2I2RSP其中R=请求,C=数据库检查,I=插入。所以

java - JPA 不生成 "on delete set null"FK 限制

我有两个带有JPA注释的相关类。警报和状态。一个警报可以有一个状态。我需要的是能够删除一个状态并将空值“传播”到处于已删除状态的警报。也就是说,我需要将外键定义为“ondeletesetnull”。@EntitypublicclassAlarm{@Id@GeneratedValue(strategy=GenerationType.SEQUENCE,generator="sequence")@SequenceGenerator(name="sequence",sequenceName="alarm_pk_seq")privateIntegerid;@OneToOne(cascade=Ca

java - 如何使从 JPA 中的父类(super class) transient 继承的映射字段?

我有一个无法更改的遗留架构。我正在为公共(public)功能使用一个基类,它包含一个嵌入式对象。有一个通常映射到嵌入式对象中的字段,它只需要在一个(许多)子类的持久性ID中。我创建了一个包含它的新id类,但随后我收到该字段被映射两次的错误。下面是一些示例代码,为了保持读者的理智而大大简化了代码:@MappedSuperclassclassBaseClass{@EmbeddedprivateDatadata;}@EntityclassSubClassextendsBaseClass{@EmbeddedIdprivateSubClassIdid;}@EmbeddableclassData{