草庐IT

java - Hibernate 可以在性能敏感的应用程序中使用吗?

我发现在检索与其他对象有很多关系的多个对象实例时会出现性能问题。我在MySQL中使用Spring和Hibernate的JPA实现。问题是在执行JPA查询时,Hibernate不会自动连接到其他表。这会产生n*r+1个SQL查询,其中n是要检索的对象数,r是关系数。例如,一个人住在一个​​地址,有很多爱好,去过很多国家:@EntitypublicclassPerson{@IdpublicIntegerpersonId;publicStringname;@ManyToOnepublicAddressaddress;@ManyToManypublicSethobbies;@ManyToMan

java - JPA和Hibernate中@MapKey、@MapKeyColumn和@MapKeyJoinColumn的区别

根据Hibernatedocumentation,如果我们想使用Map作为实体之间的关联,可以使用多个注释。医生说:Alternativelythemapkeyismappedtoadedicatedcolumnorcolumns.Inordertocustomizethemappinguseoneofthefollowingannotations:@MapKeyColumnifthemapkeyisabasictype.Ifyoudon'tspecifythecolumnname,thenameofthepropertyfollowedbyunderscorefollowedbyKE

java - JPA和Hibernate中@MapKey、@MapKeyColumn和@MapKeyJoinColumn的区别

根据Hibernatedocumentation,如果我们想使用Map作为实体之间的关联,可以使用多个注释。医生说:Alternativelythemapkeyismappedtoadedicatedcolumnorcolumns.Inordertocustomizethemappinguseoneofthefollowingannotations:@MapKeyColumnifthemapkeyisabasictype.Ifyoudon'tspecifythecolumnname,thenameofthepropertyfollowedbyunderscorefollowedbyKE

java - 标准 JPA 2 与 3 个表格

我正在尝试创建一个标准以从3个表(关联、更新和详细信息)中检索一些对象。详细信息引用关联和更新,更新引用详细信息列表。我的目标是检索在指定字段中至少具有空值的详细信息的更新列表,给定关联ID。在JPQL中很容易做到,但客户说这必须用标准编码。我的JPQL是:publicListgetUpdates(longassociateId){TypedQueryquery=em.createQuery("selectdistinctufromUpdateu,Detaildt,Associatea"+"wheredt.update=uanddt.associate=aanda.associateI

java - 标准 JPA 2 与 3 个表格

我正在尝试创建一个标准以从3个表(关联、更新和详细信息)中检索一些对象。详细信息引用关联和更新,更新引用详细信息列表。我的目标是检索在指定字段中至少具有空值的详细信息的更新列表,给定关联ID。在JPQL中很容易做到,但客户说这必须用标准编码。我的JPQL是:publicListgetUpdates(longassociateId){TypedQueryquery=em.createQuery("selectdistinctufromUpdateu,Detaildt,Associatea"+"wheredt.update=uanddt.associate=aanda.associateI

java - 使用 JPA/Hibernate 注释映射字符串列表

我想做这样的事情:@EntitypublicclassBar{@Id@GeneratedValuelongid;ListFoos}并让Foos保存在这样的表中:foo_bars(bar_idint,foovarchar(64));更新:我知道如何映射其他实体,但在很多情况下这太过分了。如果不创建另一个实体或在某个blob列中结束所有内容,我的建议似乎是不可能的。 最佳答案 如果你使用JPA2,你会这样做:@EntitypublicclassBar{@Id@GeneratedValuelongid;@ElementCollection

java - 使用 JPA/Hibernate 注释映射字符串列表

我想做这样的事情:@EntitypublicclassBar{@Id@GeneratedValuelongid;ListFoos}并让Foos保存在这样的表中:foo_bars(bar_idint,foovarchar(64));更新:我知道如何映射其他实体,但在很多情况下这太过分了。如果不创建另一个实体或在某个blob列中结束所有内容,我的建议似乎是不可能的。 最佳答案 如果你使用JPA2,你会这样做:@EntitypublicclassBar{@Id@GeneratedValuelongid;@ElementCollection

java - 批量插入中的 Postgres 错误 : relation "hibernate_sequence" does not exist position 17

我正在执行hibernatejpa批量更新,它给了我以下错误2015-04-2115:53:51,907WARN[org.hibernate.engine.jdbc.spi.SqlExceptionHelper](Thread-283(HornetQ-client-global-threads-462057890))SQLError:0,SQLState:42P012015-04-2115:53:51,908ERROR[org.hibernate.engine.jdbc.spi.SqlExceptionHelper](Thread-283(HornetQ-client-global-t

java - 批量插入中的 Postgres 错误 : relation "hibernate_sequence" does not exist position 17

我正在执行hibernatejpa批量更新,它给了我以下错误2015-04-2115:53:51,907WARN[org.hibernate.engine.jdbc.spi.SqlExceptionHelper](Thread-283(HornetQ-client-global-threads-462057890))SQLError:0,SQLState:42P012015-04-2115:53:51,908ERROR[org.hibernate.engine.jdbc.spi.SqlExceptionHelper](Thread-283(HornetQ-client-global-t

java - 如何从 JPAspersistence.xml 中外部化属性?

我想将一些hibernate配置放在一个属性文件中,使其无需构建和部署即可编辑。我尝试按照CreateJPAEntityManagerwithoutpersistence.xmlconfigurationfile中的说明解决我的问题app.properties:hibernate.show_sql=truehibernate.dialect=org.hibernate.dialect.MySQLDialecthibernate.hbm2ddl.auto=validatehibernate.show_sql=truehibernate.format_sql=truehibernate.d