草庐IT

子实体

全部标签

java - JPA+Hibernate - 实体关系中的循环 - 级联策略

我有一组实体,它们相互连接形成一个循环,即父实体P与两个子实体C1和C2有两个一对多关系,每个子实体都有一对多关系与另一个实体A。实体A实现了这些实体(C1,C2)的关联并定义了关系的属性(它不仅仅是一个连接表)。所有关系都可以在两个方向上导航。这个设计产生了以下问题:假设您总是在根实体P上调用实体管理器操作,那么级联策略应该是什么,以便实体A可以持久化/合并?A是否应该从两条路径级联可达?注意事项:似乎如果应用程序选择仅提供一个级联路径,则可能会出现抛出TransientObjectException的情况。如果它提供两条路径,那么这些路径必须形成完整的循环,例如可以尝试通过A保存C

java - 在 JPA 中链接不同实体类型的最佳方法

简短版本用于仓促:我的域模型中有多个表/实体具有相同的字段(UUID)。有一个表,我需要将此类实体的行/实例链接到其他JPA管理的实体。换句话说,该链接表中字段的实例不会预先知道。我能想到的两种方法是:使用抽象实体和TABLE_PER_CLASS策略,或者使用@MappedSuperClass也将实例的类名存储在链接表中,或类似的东西让我定义从正确的表中获取实际实例的逻辑。两者在复杂性和性能方面各有优缺点。您认为哪个最好,是否有第三种选择,或者您过去是否尝试过类似的方法并且建议/强烈警告不要这样做?长版如果你想要更多背景:我有一个数据库/对象模型,其中许多类型都有一个公共(public

java - 具有继承性的实体的 JPA native 查询

我有一个实体类和一个基于该实体的子类:@Entity@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)publicclassA和@EntitypublicclassBextendsA我需要发出一个native查询,该查询仅在基类(A)上使用存储过程。如果我尝试如下:entityManager.createNativeQuery("select*fromAawhereprocedure(f)",A.class).getResultList()我收到关于“在结果集中找不到列clazz_”的错误。我假设JPA提供者添加此列是为了区分基

java - JPA。如何子类化现有实体并保留其 ID?

假设我有两个经典的非抽象JPA类:Person和Student。@Entity@Inheritance(strategy=InheritanceType.JOINED)publicclassPerson{@Id@GeneratedValue(strategy=GenerationType.AUTO)privateStringid;//...}@EntitypublicclassStudentextendsPerson{//...}现在有一些身份的人进入大学并成为一名学生。我如何在JPA中处理该事实并保留人员的ID?student=newStudent();student.setPers

java - 在存储库中保存实体不起作用 SPRING

我正在尝试将实体保存在存储库中,但它根本不起作用。存储库是Autowiring的,在运行时我使用saveAndFlush来保存实体。我正在使用PostgreSQL。在上面的测试方法中,我添加了注释并解释了发生了什么。我希望saveAndFlush方法应该起作用,但它没有起作用。我找不到原因。@TransactionalpublicclassTestClass{@AutowiredprivateMyRepositoryrepository;@AutowiredprivateEntityManagerentityManager;//Workingversionpublicvoidwriti

java - JPA 的 commit() 方法是否使实体分离?

我最近一直在搜索JPA实体生命周期。但是现在,关于实体生命周期的一些缺失点。我在一篇stackoverflow帖子中发现了下图,请记住这张图已被投票。根据此图,当我们持久化实体时,它就变成了托管实体。好的。没问题。当我们提交时,数据进入数据库。好的。没问题。但是图表向我们展示了这个提交操作使实体分离!让我们看看下面的伪代码。entityManager.persist(entity);transaction.commit();//actioncompletedandentityhasbecomedetached.(Accordingtothediagram.)entityManager.

java - 如何使用 JPA/Hibernate : Unknown entity 自动注册实体

我遇到了一个Hibernate/JPA配置问题,它阻止我的JPA注释实体被自动注册:java.lang.IllegalArgumentException:Unknownentity:com.example.crm.server.model.Languageatorg.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:671)atcom.example.crm.server.model.Language.persist(Language.java:64)atcom.example.

【日常总结】java JSON 转 实体类 (含多层嵌套)

一、场景二、问题三、解决方案四、实战1.引入maven依赖2.IEDA安装lombok插件3.安装 GsonFormPlu插件 4.使用Stage1:新建类,右键 选择GenerateStage2:选择GsonFormatPlus Stage3:将json复制其中,点击ok注意:如果结构复杂,这里会自动生成内部类,将内部类新建类,可方便json解析一、场景调用第三方接口,接收返回json经常需要对json数据进行操作 二、问题如果只取某个字段,下次需求变更需要继续截取,操作麻烦,且如果项目时间间隔过长,需要时间回忆 三、解决方案直接JSON转实体类工具IDEA插件GsonFormPluLomb

MWC2024现场高燃!联想无实体键盘透明笔记本、三星首次展示Galaxy Ring穿戴戒指、小米SU7定价进展、荣耀眼动控车

整理&撰稿| 言征、伊风出品|51CTO技术栈(微信号:blog51cto)一年一度,世界移动通信大会终于又来了!身处GenAI之年,全球各大巨头汇聚在此,纷纷秀出了怎样的肌肉,不知道各位看官如何看待下面这五款产品,反正小编是“哇塞”了一个上午,款款都想剁手。1.联想推出透明笔记本:全透明屏幕,无实体键盘早在2月9日,就有外媒传出消息联想透明屏笔记本将出现在MWC2024上。展台现场吸引了不少国际友人的驻足。联想展示了其首款透明屏概念笔记本ThinkBookTransparentDisplayLaptop,据称也是全球首款透明笔记本电脑。ThinkBookTransparentDisplayL

url - 如果我在 url 中公开实体 key ,有什么优点/缺点?

我知道使用symfony2通过路由系统获取漂亮的url非常简单,我喜欢它。但是,当路由参数仅基于slug时,我必须通过slug找到它。$em->getRepository('Bundle:Entity')->findOneBySlug($slug);我正在考虑将这两个参数结合起来,例如stackoverflowhttp://mysite.com/articles/234/the-title.仅为SEO维护slug参数建议并直接使用实体ID(234)查找。$em->getRepository('Bundle:Entity')->find($id);使用此策略的优点/缺点是什么。我是对的吗