我想知道是否有办法获取JPA中特定持久单元的所有实体类及其元数据。我所说的元数据不仅指字段,还指它们的列名、长度、精度、数据类型以及表名和我可以获得的任何内容。我尝试使用元模型,但我认为这仅适用于JPQL查询。我需要能够向用户显示某些PU的所有Activity实体,并且我不想将它们硬编码到某个数组或数据库中,我希望API告诉我它有哪些实体。而且,如果可能的话,获取每个实体的托管实例。我想我可以尝试使用反射来获取所有带有@Entity注释的类,但这不会很漂亮,而且很难知道哪个属于特定的PU,所以如果api已经公开了这个信息那就太好了。我更喜欢符合JPA的解决方案,但如果不可能,Hiber
我有一个实体,该实体之前已保留并且与另一个实体具有@OneToMany关系。为了添加一个新实体,我只是在托管对象中添加我的新实体并使用cascadeType.ALL来保存更改。有没有一种方法可以让我获取新创建的对象的ID,或者获取我在合并中使用的原始(非托管)对象以更新其ID?在伪代码中,我希望发生以下情况:将为合并后的实体返回新副本旧副本将针对新实体进行更新例子:父A,id=13childB,id=0本质上,我想在父级上发出merge,但在子级上级联persist(以便更新而不是复制原始子实例)。显然这不会发生。我正在使用hibernate作为提供者。 最
我在JPANativeSql中有一个查询,我在其中执行表和连接的“联合”。我用来自多个表的所有查询字段创建了一个实体。所以我不能像往常一样使用JPA执行“@Column”“@table”。如何将查询的给定值设置为我的实体? 最佳答案 您可以使用@SqlResultSetMapping将nativeSQL查询返回的列映射到您的实体.Example:Queryq=em.createNativeQuery("SELECTo.idASorder_id,"+"o.quantityASorder_quantity,"+"o.itemASorde
我们在每个客户的单独数据库中有许多客户数据,这些数据应该具有相同的架构/表结构。但是,与其他数据库相比,某些数据库中有一个表具有额外的列。例如,对于客户A,有一个包含a、b、c、d列的表X。对于客户B,有一个包含a、c、d列的表X。如果b存在,我需要捕获它,如果不存在,我可以忽略它。有没有办法告诉JPA在这些列不存在时忽略它们?@Basic(optional=true)读起来和我想要的完全一样,但文档表明它用于其他目的。目前,正如预期的那样,我在“字段列表”中得到未知列“table.field”附言不幸的是,我不能只将列添加到没有它们的数据库中。 最佳答案
我已经在Eclipse中创建了一个Spring/Maven项目。然后我把它放在svn下的服务器上。然后我使用import>mavenproject等再次将它导入Eclipse。我当前的App.java应用程序包含以下代码:packagecom.mycomany.app;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.EnableAutoConfiguration;importorg.springframework.boot.autoconfigur
这个问题在这里已经有了答案:Transactionalsaveswithoutcallingupdatemethod(5个答案)关闭5年前。我有一个简短的问题:我是否需要对@Transactional方法调用repo.save(x)?我问是因为我在我的数据库上看到了没有保存的更改,并且没有阅读关于它的明确文档。那么它是按预期工作,还是只是一种(受欢迎的)意外行为?例子:@AutowiredprivateUserReporepo;@Transactional@PutMappingpublicLongput(@RequestBodyUseruser){Useru=repo.findOne(
我所有的实体都使用这种类型的@Id@Id@GeneratedValue(strategy=GenerationType.SEQUENCE,generator="MYENTITY_SEQ")@SequenceGenerator(name="MYENTITY_SEQ",sequenceName="MYENTITY_SEQ")@Column(name="MYENTITY",nullable=false)privateLongid;或@Id@Column(name="MYENTITY")我发现总是创建一个名为hibernate_sequence的Oracle序列。为什么会这样?我该如何避免这种
我有一个大型的非JavaEE、基于JSF的Web应用程序项目。我们的系统是分层的(在源代码意义上):有一个数据模型包,DAO包建立在它之上。我们在DAO包中专门使用Hibernate的XML配置映射。我们真的不想用注解混淆数据模型,但也不是特别执着于Hibernate(除了映射相当复杂)。我强烈考虑转向JavaEE并将我们的DAO对象构建为EJB。但是由于我们不愿意丢弃Hibernate的XML,这引出了几个问题:是否可以在模型上没有JPA注释的情况下将Hibernate与JPA一起使用?如果不是,我的EJB是否有可能与Hibernate进行事务处理?我认为这称为JTA支持,但不确定。
我的问题是关于JPA2.0与Hibernate、@OneToOne关系和延迟加载。首先我的设置:Spring3.0.5.RELEASESprnigDataJPA1.0.1.RELEASEhibernate3.5.2-Final数据库管理系统:PostgreSQL9.0我最近发现,@OneToOne关系无法以惰性方式(FetchType.LAZY)获取,至少在没有字节码检测、编译时编织等情况下是这样。许多网站都这样说,例如:http://community.jboss.org/wiki/SomeExplanationsOnLazyLoadingone-to-onehttp://justo
我有两个表:TaStock和TaStockPrice。表TaStockPrice中的字段tastockid是表TaStock的外键。@EntitypublicclassTaStock{@Id@GeneratedValue(strategy=GenerationType.IDENTITY)Integerid@OneToMany(mappedBy="taStock",fetch=FetchType.LAZY,cascade=CascadeType.ALL)privateListtastockpriceList;publicvoidaddTaStockPrice(TaStockPriceta