草庐IT

java - 如何调试 "Found two representations of same collection"?

我找到了severalquestionsabout这个,但没有一个完整的问题解释,以及如何调试它-答案都是轶事。问题是在Play1.2.4JPA测试中,当我save()一个模型时出现这个异常:org.hibernate.HibernateException:Foundtworepresentationsofsamecollection:models.Position.projects我想知道:是否有与Play无关的关于此问题的一般文档?问题出在hibernate状态,但很多关于此问题的Google结果都在Play应用程序中。有哪些基本的最佳做法可以避免此问题?它是由Play引起的吗?或

java - 当我使用 JPA 查询的 getResultList() 时,结果是分离的还是管理的?

当我有一个调用.getResultList()的JPA查询时,它会返回一个对象列表。该列表中的对象是托管的还是分离的?也就是说,如果我对它们进行了更改,我是否需要担心以后合并或持久化它们,或者这些更改是否会自动获取? 最佳答案 是的,从.getResultList()返回的对象是被管理的。当您对托管对象进行更改时,您不必担心合并,因为这些更改将由EntityManager自动获取。当用于加载该对象的EntityManager为close()时,托管对象将分离。,clear()或detach().分离的对象不再受管理,您应该合并以让E

java - 使用 JPA EntityManager 连接两个不相关的表

当两者之间没有FK/PK关系时,我需要在属性上加入两个JPA实体。我正在使用Hibernate并且可以像这样使用HQL查询selectfoo,barfromFooEntityasfoo,BarEntityasbarwherefoo.someothercol='foo'andfoo.somecol=bar.somecol但是,我想避免对Hibernate的依赖,而是使用EntityManager。请帮忙。 最佳答案 您的查询是有效的JPQL,并且不使用Hibernate特定功能(只是缺少bar和from之间的空格)。在JPA2.0规范

java - @Index 注释在 JPA 2.1 中如何工作?

这个问题在这里已经有了答案:Theannotation@Indexisdisallowedforthislocation(3个答案)关闭9年前。我正在尝试测试自2.1以来可用的JPA的@Index注释。但是我找不到文档如何使用它。当我尝试时:@Index(columnList="firstName")privateStringfirstName;..然后Eclipse说:“此位置不允许注释@Index”有人知道怎么用吗?或者已经找到它的文档?:-)感谢您的任何建议!

java - 复合主键,外键。引用对象或键?

我有两个类Foo和Bar。数据库中的表如下所示:|Foo||id:INT(PK)|bar_id:INT(PK,FK)||Bar||id:INT(PK)|通常我会这样映射它:@EntitypublicclassBar{@Id@Column(name="id")privateintid;@OneToManyprivateSetfoo;}@EntitypublicclassFoo{@EmbeddedIdprivateFooPKkey;@MapsId("barId")@ManyToOne@JoinColumn(name="bar_id",referencedColumnName="id")pr

java - 在 Hibernate 中设置属性的默认值不起作用

我的实体中有一个boolean值属性。这是我的注释:@Column(name="IS_ACTIVE",nullable=false,columnDefinition="BITDEFAULT1",length=1)publicBooleangetActive(){returnisActive;}但是columnDefinition="BITDEFAULT1"不能完美地工作。这是我作为生成表的结果得到的SQL代码:IS_ACTIVEBIT(1)NOTNULL,我做错了什么?因此,当我尝试将此类的实例保存到数据库时,出现异常:`com.mysql.jdbc.exceptions.jdbc4.

java - 动态更改持久性单元 - JPA

persistence.xml中的持久性单元是在构建应用程序期间创建的。由于我想在运行时更改数据库url,有没有办法在运行时修改持久性单元?我应该在分发后使用不同于预绑定(bind)数据库的其他数据库。我正在使用EclipseLink(JPA2.1) 最佳答案 保持持久性单元文件(Persistence.xml)不变。您可以按如下方式覆盖其中的属性。EntityManagerFactorymanagerFactory=null;MappersistenceMap=newHashMap();persistenceMap.put("ja

java - JPA 为什么要使用 createNamedQuery

我正在将我的DAO层从使用HibernateAPI更改为使用纯JPAAPI实现。看起来推荐的方法是使用实​​体管理器中的createNamedQuery。命名查询存储在模型/实体类的注释中。这对我来说没有意义。为什么要在模型对象中定义JPA查询,但在DAO中使用它们。仅在DAO本身内部使用createQuery并在DAO中定义查询或者甚至仅在DAO本身中定义命名查询是否更有意义?对于那些已经使用JPAAPI实现了DAO层的人,您是如何定义查询的? 最佳答案 我使用命名查询。这样做有两个原因:它将它们放在一个更中心的位置,而不是分散在

java - spring data jpa limit pagesize,如何设置为maxSize

我有一个要求是按可分页和不可分页进行搜索,在我的Java代码中,我使用springdatajpaPageable类,Pageablepageable=newPageRequest(queryForm.getPageNumber()-1,queryForm.getPageSize(),Sort.Direction.ASC,"id");Pagepage=repository.fullTextSearch(queryForm.getText(),pageable);而且我不想改变返回结构,那么当不可分页的情况下(搜索所有),如何将pageSize值设置为MAX?

java - 找不到元素 'persistence' 的声明

把persistence.xml放在eclipse项目的classpath下因为之前的错误是找不到文件。现在给出这个错误:Causedby:javax.persistence.PersistenceException:Invalidpersistence.xml.ErrorparsingXML[line:-1,column:-1]:cvc-elt.1:Cannotfindthedeclarationofelement'persistence'org.hibernate.ejb.HibernatePersistence 最佳答案 问题