草庐IT

实体抽取

全部标签

java - 有效地确定通过 OneToMany 关系引用的实体的 ID

假设我有一个Hibernate实体,它声明了与另一个实体的OneToMany关系:@EntitypublicclassSomeEntity{@OneToMany(fetch=FetchType.LAZY)privateListotherEntities=newLinkedList();[...]}当将SomeEntity映射到相应的DTO时,我所需要的只是将OtherEntity标识为主键的ID(即,我实际上对OtherEntity不感兴趣实例)。Hibernate是否支持这种模式,即仅检索通过OneToMany关系引用的实体的ID?我无法影响SomeEntity的检索方式(即,我在当

java - 通过服务公开 JPA 实体

我们正在使用AngularJS、Rest、JPA开发Web应用程序。我已经阅读了一些关于域实体不应通过服务公开的文章。我知道这是紧密耦合,可能存在循环引用、关注点分离,这对我来说似乎是有效的。但后来我看到有关将jpa和jaxb映射应用于同一模型的文章,eclipseLinkmoxy就是一个例子。然后是SpringdataREST,它通过restapi公开jpa实体。(可能是SpringDataREST用于解决手头的不同问题)所以我有点困惑。回答以下2个问题和其中一个比另一个更好的场景会有所帮助。将jaxb和JPA注释应用到同一个领域模型有什么好处?这样做主要是为了避免中间出现DTO层?

java - 缓存不一致 - 实体并不总是保留在缓存的集合中

我在将Validation实例添加到Step实例的集合中时遇到问题。声明如下:步骤类:@Entity@Table@Cacheable@Cache(usage=CacheConcurrencyStrategy.READ_WRITE)publicclassStepextendsAbstractEntityimplementsValidatableStep{@OneToMany(fetch=FetchType.LAZY,cascade=CascadeType.ALL,orphanRemoval=true)@JoinColumn(name="step_id",nullable=false)@C

java - 在没有 persistence.xml 或 orm.xml 的情况下使用 IntelliJ 生成 JPA 实体

有没有办法在没有persistence.xml文件的情况下使用IntelliJ生成JPA实体?或者基本上让IntelliJ从JavaConfig中识别一个持久性单元?我有一个现有的(遗留)模式,该项目是重写的,现在在SpringBoot中使用JavaConfig。根据SpringBoot文档,持久化单元将由代码创建:@BeanpublicLocalContainerEntityManagerFactoryBeancustomerEntityManagerFactory(EntityManagerFactoryBuilderbuilder){returnbuilder.dataSourc

java - Hibernate:没有实体类的外键,只能通过id

我有一个分层实体,它把自己作为父对象引用。我只需要通过ids进行映射,而不是通过实体实例(原因太复杂无法解释)。所以我这样定义实体:classItem{@IdprivateStringid;@ManyToOne(targetEntity=Item.class)@JoinColumn(name="PARENT_ID",nullable=true)privateStringparentId;}这似乎工作正常。外键约束在数据库中正确创建。但是当我执行以下查询时:SELECTiFROMItemiWHEREi.parentId=:parentId我得到这个异常(有趣的部分以粗体显示):org.h

java - 在 spring boot JPA 中,如何正确地将实体表示具有外键关联的对象发布到不同的实体?

如果我有一个实体包含另一个类的对象,例如Book内部有一个Publisher的实体关联的实体如下:@ManyToOne@JoinColumn(name="PUB_CODE",referencedColumnName="PUB_CODE")privatePublisherpub;这是一种安全/正确的方法(我在这个例子中看到了数据库中的正确数据,但不能100%确定它是否适用于所有情况)方法来发布在数据库中具有外键关联的对象?我不知道这样做在事务原子性或线程方面是否安全,或者它是否有效。相关代码如下:Book.javapackageapp.domain;/*imports*/@Entityp

java - Jersey GET 请求可以返回多态实体吗​​?

我有一个Resource类试图返回一个接口(interface)类型,比如“Shape”:publicinterfaceShape{...}@XmlRootElementpublicclassCircleimplementsShape{...}@Path("/api/shapes")publicclassShapeResource{@GET@Path("/{shapeId}")publicShapeget(@PathParam("shapeId")StringshapeId){....returnnewCircle();}}通过上面的实验,我看到服务器返回的XML是这样的:...到目前

java - 安全更新 hibernate 实体的最佳方法是什么?

先说明一下上下文。我有通过JMS访问的后端Java(Spring/Hibernate)应用程序。我有通过Url访问的客户端应用程序(RESTfull)。我有一个包含多个列表的复杂实体(其中大部分是惰性的),并且该实体是xy其他实体的组合。问题:因为我通过URL访问它,所以我根据URL参数在客户端应用程序中创建Java对象。我通过JMS将它发送到后端,但在后端,我没有Hibernate对象,所以我不能简单地合并它。我可以浏览来自客户的所有信息,例如:通过id获取hibernate对象检查有什么不同设定新的值(value)观更新并为每个组合实体重复它,但我想知道是否有更优雅和“易于维护”的

java - 在有状态的 ejb 扩展中通过查找找到的 JPA 实体不受管理

我以为em.find找到的一个entity是em自动管理的,连出一个事务,但是下面的这个class好像相反。是我错了还是那堂课有什么错误?@Stateful@TransactionAttribute(NOT_SUPPORTED)publicclassCustomerGateway{@PersistenceContext(unitName="customersPU",type=EXTENDED)privateEntityManagerem;privateCustomercustomer;publicCustomerfind(Longid){//customerisnotmanaged!t

java - 每个实体的 Hibernate 命名策略

我有一个全局命名策略,但对于一些实体我想使用不同的命名策略。在jpa或hibernate中可以吗?澄清:我不想使用@Table(name="xxx")或@Column(name="xxx")。我问的是命名策略组件(例如此处描述:Hibernatenamingstrategy)。这是一个为您推断列名和表名的组件 最佳答案 我在Hibernate源代码中看不到任何方法。EntityBinder使用ObjectNameNormalizer.NamingStrategyHelper来命名,它从Configuration.namingStra