Questions tagged «hibernate»

Hibernate是一种Java语言的对象关系映射(ORM)库,使开发人员能够以远远超出对象/关系映射的方式在其应用程序中使用POJO风格的域模型。

1
存储库模式-如何理解它以及它如何与“复杂”实体一起工作?
我很难理解存储库模式。 关于该主题有很多意见,例如在Repository模式中做得正确,但其他信息,例如Repository是新的Singleton或再次出现,例如在不要使用DAO中使用Repository或只是以某种方式使用Spring JPA Data + Hibernate + MySQL + MAVEN存储库似乎与DAO对象相同。 我厌倦了阅读这些东西,因为恕我直言,这在很多文章中都不是一件难事。 我看到的是这样的:看来我想要的是这样的: ------------------------------------------------------------------------ | Server | ------------------------------------------------------------------------ | | | | Client <-|-> Service Layer <-|-> Repository Layer <-|-> ORM / Database Layer | | | | | ------------------------------------------------------------------------ 在Service Layer需要*DTO的对象,并将这些的Repository Layer,基本上不外乎谁知道“的家伙”怎么一个实体可以存储。 例如,假设您具有一些工具的组合(请注意,这只是伪代码) @Entity class ToolSet { @Id public Long …


7
休眠:flush()和commit()
org.hibernate.Session.flush()单独打电话是个好习惯吗? 如org.hibernate.Session文档中所述, 在提交事务并关闭会话之前,必须在工作单元的末尾调用(取决于刷新模式,Transaction.commit()调用此方法)。 您能解释一下flush()是否org.hibernate.Transaction.commit()会明确呼叫的目的吗?
77 java  hibernate  orm 

6
澄清术语-从数据库获取实体时,“水化” JPA或Hibernate实体是什么意思
在ORM /实体的延迟加载的情况下,我对术语“水合”的理解如下: “水合”描述了填充使用延迟加载获取的实体的某些或全部先前未填充的属性的过程。 例如:Author从数据库中加载类: @Entity class Author { @Id long id; List<Book> books; } 最初,books不填充集合。 据我了解,books从数据库加载集合的过程称为“水化”集合。 这个定义正确吗?我应该在此过程中使用另一个更通用的术语吗?

25
无法启动Spring以自动创建数据库架构
我无法启动启动时自动启动数据库架构的Spring Boot。 这是我的application.properties: spring.datasource.url=jdbc:mysql://localhost:3306/test spring.datasource.username=test spring.datasource.password= spring.datasource.driverClassName = com.mysql.jdbc.Driver spring.jpa.database = MYSQL spring.jpa.show-sql = true spring.jpa.hibernate.ddl-auto = create spring.jpa.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect spring.jpa.hibernate.naming_strategy = org.hibernate.cfg.ImprovedNamingStrategy 这是我的Application.java: @EnableAutoConfiguration @ComponentScan public class Application { public static void main(final String[] args){ SpringApplication.run(Application.class, args); } } 这是一个示例实体: @Entity @Table(name = "survey") public class Survey implements …

3
如何使用Hibernate批注标记外键约束?
我正在尝试使用Hibernate批注为数据库表编写模型类。 我有两个表,每个表都有一个主键User和Question。 @Entity @Table(name="USER") public class User { @Id @Column(name="user_id") @GeneratedValue(strategy=GenerationType.AUTO) private Long id; @Column(name="username") private String username; // Getter and setter } 问题表。 @Entity @Table(name="QUESTION") public class Questions extends BaseEntity{ @Id @Column(name="question_id") @GeneratedValue(strategy=GenerationType.AUTO) private int id; @Column(name="question_text") private String question_text; // Getter and setter } 我还有一个表UserAnswer,其中有来自上面两个表的userId和questionId作为外键。 但是我无法在UserAnswer表中找到如何引用这些约束的方法。 @Entity @Table(name="UserAnswer …


2
HikariCP-无法连接
我们的项目中有Spring-boot / Hibernate / PostgreSQL应用程序,并使用Hikari作为连接池。我们一直遇到以下问题:几个小时后,活动的连接数增长到了极限,并且出现了这样的错误(完整的堆栈跟踪位于问题的结尾): Caused by: java.sql.SQLTransientConnectionException: HikariPool-0 - Connection is not available, request timed out after 30000ms. at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:213) ~[HikariCP-2.4.1.jar:na] at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:163) ~[HikariCP-2.4.1.jar:na] at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:85) ~[HikariCP-2.4.1.jar:na] at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:139) ~[hibernate-core-4.3.6.Final.jar:4.3.6.Final] at org.hibernate.internal.AbstractSessionImpl$NonContextualJdbcConnectionAccess.obtainConnection(AbstractSessionImpl.java:380) ~[hibernate-core-4.3.6.Final.jar:4.3.6.Final] at org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.obtainConnection(LogicalConnectionImpl.java:228) ~[hibernate-core-4.3.6.Final.jar:4.3.6.Final] ... 126 common frames omitted 这是版本信息: Spring-boot version: 1.2.3.RELEASE HikariCP version: 2.4.1 Hibernate …

10
如何在具有联接和基于行的限制(分页)的休眠状态下获得独特的结果?
我正在尝试在具有联接到其他表的Hibernate Criteria查询上使用基于行的限制(例如:setFirstResult(5)和setMaxResults(10))来实现分页。 可以理解,数据是随机切断的。而其中的原因进行了说明这里。 作为解决方案,该页面建议使用“第二个SQL选择”而不是联接。 如何将现有的条件查询(使用createAlias()进行联接)转换为嵌套选择呢?

5
使用Criteria API进行订购
当我编写HQL查询时 Query q = session.createQuery("SELECT cat from Cat as cat ORDER BY cat.mother.kind.value"); return q.list(); 一切都很好。但是,当我编写标准时 Criteria c = session.createCriteria(Cat.class); c.addOrder(Order.asc("mother.kind.value")); return c.list(); 我有一个例外 org.hibernate.QueryException: could not resolve property: kind.value of: my.sample.data.entities.Cat 如果我想使用“标准和顺序”,我应该如何表达我的“顺序”?

8
如何从Hibernate Criteria API获取SQL(*不*用于记录)
有没有办法从Hibernate获取(待生成的)SQL Criteria? 理想情况下,我将具有以下内容: Criteria criteria = session.createCriteria(Operator.class); ... build up the criteria ... ... and then do something like ... String sql = criteria.toSql() (But this of course does not exist) 然后的想法是将SQL用作巨大的“ MINUS”查询的一部分(我需要找到2个相同模式之间的差异-结构相同,而不是数据相同-且Hibernate不支持MINUS) (顺便说一句,我知道我可以从日志文件中检查SQL)
73 java  sql  hibernate  criteria 

14
休眠:LazyInitializationException:无法初始化代理
这是让我困惑的一个。我正在尝试实现基本的Hibernate DAO结构,但是遇到了问题。 这是基本代码: int startingCount = sfdao.count(); sfdao.create( sf ); SecurityFiling sf2 = sfdao.read( sf.getId() ); sfdao.delete( sf ); int endingCount = sfdao.count(); assertTrue( startingCount == endingCount ); assertTrue( sf.getId().longValue() == sf2.getId().longValue() ); assertTrue( sf.getSfSubmissionType().equals( sf2.getSfSubmissionType() ) ); assertTrue( sf.getSfTransactionNumber().equals( sf2.getSfTransactionNumber() ) ); 它在尝试将sf中的值与sf2中的对应值进行比较的第三个assertTrue上失败。这是例外: org.hibernate.LazyInitializationException: could not initialize proxy - …

4
JPA映射:“ QuerySyntaxException:未映射foobar…”
我一直在研究一个非常简单的JPA示例,并试图将其调整为现有数据库。但是我无法克服这个错误。(下面。)这只是我没看到的一些简单的事情。 org.hibernate.hql.internal.ast.QuerySyntaxException: FooBar is not mapped [SELECT r FROM FooBar r] org.hibernate.hql.internal.ast.util.SessionFactoryHelper.requireClassPersister(SessionFactoryHelper.java:180) org.hibernate.hql.internal.ast.tree.FromElementFactory.addFromElement(FromElementFactory.java:110) org.hibernate.hql.internal.ast.tree.FromClause.addFromElement(FromClause.java:93) 在下面的DocumentManager类(一个简单的servlet,因为这是我的目标)中,有两件事: 插入一行 返回所有行 插入效果很好-一切都很好。问题出在检索上。我尝试了各种Query q = entityManager.createQuery参数值,但没有走运,并且尝试了各种更复杂的类注释(如列类型),但均未成功。 请把我从我自己身上救出来。我敢肯定这有点小。我对JPA的经验不足,无法继续前进。 我的./src/ch/geekomatic/jpa/FooBar.java文件: @Entity @Table( name = "foobar" ) public class FooBar { @Id @GeneratedValue(strategy=GenerationType.IDENTITY) @Column(name="id") private int id; @Column(name="rcpt_who") private String rcpt_who; @Column(name="rcpt_what") private String rcpt_what; @Column(name="rcpt_where") private String …
72 java  mysql  hibernate  jpa 

6
有哪些关于Java,Spring,Hibernate,Maven的好博客可供阅读?[关闭]
从目前的情况来看,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 为了继续提出进一步的问题,我对博客,网站(有时会发布关于我提到的主题的教程,技巧或最佳实践)更感兴趣。例如:http : //net.tutsplus.com/是一个非常不错的网站,如果您想了解或升级有关CSS,HTML,Javascript,PHP的知识,是否有这样的网站?是否有像Java和相关技术这样的网站?
72 java  spring  hibernate  maven 

12
删除无法使用JpaRepository
我有一个Spring 4应用程序,试图从数据库中删除实体的实例。我有以下实体: @Entity public class Token implements Serializable { @Id @SequenceGenerator(name = "seqToken", sequenceName = "SEQ_TOKEN", initialValue = 500, allocationSize = 1) @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "seqToken") @Column(name = "TOKEN_ID", nullable = false, precision = 19, scale = 0) private Long id; @NotNull @Column(name = "VALUE", unique = true) …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.