草庐IT

实体型

全部标签

java - JPA获取实体对象的id

有谁知道我如何在hibernate中做同样的事情:session.getIdentifier(instance);使用JPA?EntityManager有一个contains方法,仅此而已!我正在编写一些代码,充当session中存储的实体和数据之间的转换器(因此不是存储序列化对象,而是仅存储类名和ID)。 最佳答案 在JPA2.0中你可以写em.getEntityManagerFactory().getPersistenceUnitUtil().getIdentifier(instance);

java - org.hibernate.AnnotationException : Collection has neither generic type or OneToMany. 目标实体()

我使用Hibernate工具生成我的HibernatePOJO映射。不幸的是,Hibernate工具生成的代码似乎无法工作,我得到了异常org.hibernate.AnnotationException:集合既没有泛型类型也没有OneToMany.targetEntity()产生异常的代码部分是/***ClassFlaggeneratedbyhbm2java*/@Entity@Table(name="class_flag",catalog="incbszdb")publicclassClassFlagimplementsjava.io.Serializable{..../*HERE*/

java - 与实体一起抛出的 WebApplicationExceptions 的 ExceptionMapper?

在我们的(遗留)代码库中,我们以不同的方式抛出WebApplicationExceptions。为了对我们处理异常的方式进行排序-我想为这些WAE(和其他)创建一个ExceptionMapper。然而,我意识到Jersey的ExceptionMapper只映射未随实体一起抛出的WAE。例如:thrownewWebApplicationException(Response.status(500).build());此异常由ExceptionMapper捕获。thrownewWebApplicationException(Response.status(500).entity(WsReso

java - Hibernate Session#merge 在收到带有 ID 的实体时是否应该插入?

这似乎经常出现,但我用谷歌搜索无济于事。假设您有一个Hibernate实体User。您的数据库中有一个ID为1的User。您有两个线程在运行,A和B。它们执行以下操作:A获取用户1并关闭其SessionB获取用户1并删除它A更改用户1的字段A得到一个新的Session并合并的用户1我所有的测试都表明merge试图在数据库中找到用户1(显然不能),因此它插入了一个ID为2的新用户。另一方面,我的期望是Hibernate会发现被合并的用户不是新用户(因为它有一个ID)。它会尝试在数据库中找到用户,这会失败,因此它不会尝试插入或更新。理想情况下,它会抛出某种并发异常。请注意,我正在通过@Ve

java - 使用 hibernate-envers 时,AUD 表中的所有 @Version 字段均为 null,但在实体中 - 表已填充好吗?

有应用spring+jpa+envers(hibernate)envers需要将实体的历史保存在特殊的表中。在我保存了几次我的实体之后,我希望看到USER表中的填充版本字段和USER_AUT中的填充版本字段。但实际结果在USER表中是正确的值,但在版本列中添加了REV_TYPE、REV列(在字段中只是couter的所有行)和null。我用的是4.0.1.Finalhibernateorg.hibernatehibernate-envers4.0.1.Finalorg.hibernatehibernate-entitymanager4.0.1.Final但是,当我查看表时,Version

java - Hibernate 可以对不同于字段名称的实体属性使用逻辑名称吗?

比方说,有一个Hibernate实体通过注释配置了字段访问。我想映射一个Java类字段_name,以便它的Hibernate逻辑名称是name,例如,当从HQL查询引用时。我主要需要这个来Collection。预期不正确的建议:无法将访问类型切换为“属性”;该任务与物理列的名称无关。 最佳答案 根据我对您问题的理解-您可以这样定义实体。这将生成一个名为(NewName_ABCwithacolumnname)的hibernate表@Entity@Table(name="NewName_ABC")publicclassABC{.@Col

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

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

java - 如何国际化 Hibernate 实体

我正在尝试为Java实体添加国际化(多语言)支持。在向每个新字段添加翻译时,我愿意接受尽可能少的样板代码的任何选项。我不限于JPA,也可以使用hibernate注释。在最坏的情况下,纯sql也适用。可能有一些我还没有找到的现成库。应该没有必要遵循我下面描述的想法。理想情况下,我需要数据库看起来像这样:i18n+------+--------+------+|id|locale|text|+------+--------+------+|1|en|foo|+------+--------+------+|1|de|bar|+------+--------+------+|2|en|foo

java - Hibernate:只需保存一个带有@EmbeddedId 的实体作为主键

我想学习hibernate基础知识,但不明白为什么我的应用程序在使用复合主键的@EmbeddedIdannontations添加到我的表中时不起作用:代表PK的类:@EmbeddablepublicclassOHLCVKeyimplementsSerializable{privatestaticfinallongserialVersionUID=-3996067621138883817L;@Column(name="Symbol")protectedStringsymbol;@Column(name="Currency")protectedStringcurrency;@Column(

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

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