草庐IT

Hibernate

全部标签

java - JPA 或 Hibernate - 在不同类型的列上连接表

有没有办法告诉Hibernate在使用to_char连接到另一个表或相反地将NUMBER转换为VARCHAR时将列包装在to_char中?我有一种情况,我有一个表,其中包含一个类型为VARCHAR的通用键列,该列存储另一个表的ID,该表是一个数字。当Hibernate执行它生成的使用“=”比较两列的SQL时,我收到了一个SQL异常。谢谢...附言我知道这并不理想,但我坚持使用模式,所以我必须处理它。 最佳答案 这应该可以在您的多对一中使用公式。来自5.1.22.Columnandformulaelements部分(此previous

java - 在对象图中检测到循环。这将导致无限深的 XML

我有两个DTO对象,比如A和B,它们具有getter和setter,用于从数据库中获取数据。问题是当我调用A时,B被调用并且B再次将自身指向A并创建一个循环。我不能忽略/隐藏创建循环的方法。我需要获取A和B的全部数据。有什么办法可以实现吗?请帮忙这是导致问题的我的代码。这是调用环境DTO的应用程序DTO@OneToMany(mappedBy="application",fetch=FetchType.LAZY,cascade=CascadeType.ALL)publicSetgetEnvironment(){returnenvironment;}publicvoidsetEnviron

java - JPA GenerationType.AUTO 不考虑具有自动增量的列

我有一个表,其中包含一个简单的intid列,在SQLServer中标识自动递增。实体的Id用@Id和@GeneratedValue注释@Id@GeneratedValue(strategy=GenerationType.AUTO)@Column(name="id",length=4,precision=10,nullable=false)privateIntegerid;在SQLServer中,该列已正确设置为带有Seed且Increment等于1的标识。当我尝试保留该实体的实例时,Hibernate尝试查询hibernate_sequence表以获取ID值。由于我没有在我的架构中创建

java - hibernate 查询列表 : empty or null?

如果我有使用Hibernate的方法,像这样:publicTtypedQuery(Queryq,Classtype){Listresults=q.list();//resultwillbenulloremptyList?}如果查询不会从表中获取任何记录,result将是null或空列表? 最佳答案 如果没有结果,它将返回一个空列表。Relevantpost 关于java-hibernate查询列表:emptyornull?,我们在StackOverflow上找到一个类似的问题:

java - JPA 的 commit() 方法是否使实体分离?

我最近一直在搜索JPA实体生命周期。但是现在,关于实体生命周期的一些缺失点。我在一篇stackoverflow帖子中发现了下图,请记住这张图已被投票。根据此图,当我们持久化实体时,它就变成了托管实体。好的。没问题。当我们提交时,数据进入数据库。好的。没问题。但是图表向我们展示了这个提交操作使实体分离!让我们看看下面的伪代码。entityManager.persist(entity);transaction.commit();//actioncompletedandentityhasbecomedetached.(Accordingtothediagram.)entityManager.

java - 使用 HQL 进行内部连接

我正在尝试在一列上内部连接两个表。从数据库方面来看,没有映射,因为这是我不想讨论的事情。我想使用INNERJOIN执行HQL查询并检索ROLE对象/结果。到目前为止,这是我的hqlsession.createQuery("fromROLEasroleINNERJOININVOLVEMENTasinvolvementONrole.id=involvement.roleidWHEREinvolvement.id=X").list();我看到ON在HQL上不可用。我如何明确告诉Hibernate仅在此列上加入。下面的我也试过了selectroleSpecfromROLEasrole,INVO

java - 基于日期的ehcache

我正在使用ehcache2.5.4。我有一个对象需要全天缓存并在每天凌晨00:00刷新一个新值。目前,对于ehcache配置,我只能设置生存时间和闲置时间,但这取决于我创建对象的时间或对象的使用时间。即:有没有办法让ehcache根据特定时间使特定缓存过期。 最佳答案 我通过扩展Ehcache的Element类来做到这一点:classEvictOnGivenTimestampElementextendsElement{privatestaticfinallongserialVersionUID=...;privatefinallon

java - 组织.hibernate.AnnotationException : referencedColumnNames referencing not mapped to a single property

我在2个实体之间映射一对一时遇到了以下异常。第一个实体具有嵌入式复合键。第二个实体也有嵌入式组合键。这些表是遗留系统的一部分。数据是扁平的,关系没有明确定义。请帮忙。Causedby:org.hibernate.AnnotationException:referencedColumnNames(FLAG_NAME)ofnet.javabeat.spring.model.ReferralsM.mnEditFlagreferencingnet.javabeat.spring.model.MnEditFlagnotmappedtoasinglepropertyatorg.hibernate.

java - 在 Hibernate 中强制更新

如何强制Hibernate更新实体实例,即使该实体不是脏的?我正在使用Hibernate3.3.2GA、HibernateAnnotations和HibernateEntityManagerbtw。我真的希望Hibernate执行通用的UPDATE语句,即使实体上的任何属性都没有更改。我需要这个,因为当应用程序第一次运行时,一些事件监听器需要被调用来做一些额外的工作。谢谢! 最佳答案 好的-我自己找到了。这样做的诀窍:Sessionsession=(Session)entityManager.getDelegate();sessio

带有 nolock 的 Java Hibernate HQL 查询

有没有办法运行这些查询,就像我向它们添加了(NOLOCK)提示一样? 最佳答案 如果你真的需要这个,那么你想做这样的事情:session.connection().setTransactionIsolation(Connection.TRANSACTION_READ_UNCOMMITTED);这与nolock相同。在你这样做之前,如果你想做脏读,真的要仔细考虑。大多数时候,人们这样做是因为这是他们一直在做的事情,而不是因为这是正确的做法。特别是,这不适用于缓存。实际上,thisthread稍微讨论一下问题。决定前仔细阅读。