草庐IT

Hibernate

全部标签

java - 带有 JPA/Hibernate 的 Spring MVC 中是否仍然需要 DAO

我知道这个问题已经被问过无数次了,但是由于关于这个主题的大多数问题都是6-7年前的,我希望看看支持/反对这个主题的原始论点是否有任何变化,因为更新版本的JPA出来了。我知道这可以被视为主要基于意见,但我正在寻找优点/缺点列表。有些人认为entitymanager本身就是一个DAO,应用程序中的DAO层是多余的。大多数人会同意EntityManager非常紧密地涵盖了基本的CRUD操作......但是有一点我们不应该在里面使用entitymanager.createQuery(...)服务层。但现在有了@NamedQueries注释,我们可以简单地向模型类添加命名查询,并为每个实体模型维

java - 在 Hibernate Validator 中为每个属性生成一个错误代码

我正在考虑使用HibernateValidator来满足我的要求。我想验证一个JavaBean,其中属性可能有多个验证检查。例如:classMyValidationBean{@NotNull@Length(min=5,max=10)privateStringmyProperty;}但是,如果此属性验证失败,我希望将特定的错误代码与ConstraintViolation相关联,无论它是否因@Required或@Length而失败,尽管我想保留错误消息。classMyValidationBean{@NotNull@Length(min=5,max=10)@ErrorCode("1234")

java - 如何在 Hibernate Search 中使用 boolean 运算符

我正在学习HibernateSearchQueryDSL,而且我不确定如何使用boolean参数(例如AND或OR)构造查询。例如,假设我想返回所有firstName值为“bill”或“bob”的个人记录。在hibernate文档之后,一个示例使用带有两个子查询的bool()方法,例如:QueryBuilderb=fts.getSearchFactory().buildQueryBuilder().forEntity(Person.class).get();QueryluceneQuery=b.bool().should(b.keyword().onField("firstName")

java - 使用 JPA (Hibernate) 查找包含给定记录的页面

我如何知道记录在JPA查询中的位置?我有一个返回分页结果的服务,它或多或少地实现了一个带有这个签名的方法:ListgetRecordsPage(longpage,intpageSize);当它被调用时,我只是创建一个查询并像这样配置:TypedQueryquery=entityManager.createQuery(criteriaQuery);query.setFirstResult(page*pageSize);query.setMaxResults(pageSize);这对结果进行分页。这按预期工作,而且非常简单。问题我的另一个要求是实现一个方法来检索包含特定记录的页面。实现具有

java - 如何使用 Hibernate 映射 byte[] 属性?

我正在使用Hibernate/Java将实体持久保存到数据库中。该实体有一个密码字段,它是一个字符串。在我的应用程序中注册用户时,我使用SHA-1散列密码(我承认这有点弱)。这会产生一个byte[],然后我将其转换为String使用新字符串(byte[]arr);每当我想登录用户时,我只需从数据库中检索散列密码(如String)并将其与登录时输入密码的摘要进行比较hashedPasswordFromDatabase.equals(SHA1_HASH(inputPassword));这在我的开发系统(Windows7、JDK1.6.0_23/JDK1.7、MySQL5.5、Tomcat6

java - API 或代码 : Difference between Hibernate 3 and 4?

我粘贴了Hibernate3配置文件、SessionFactory类来配置这个config.xml和一个带有JPA注释的bean。我想知道如果我使用的是Hibernate4,那么代码级别的上下文会发生什么变化,或者外行语言的非常广泛的差异或进步。hibernate.cfg.xmloracle.jdbc.driver.OracleDriverjdbc:oracle:thin:@192.168.2.144:1521:xeprateekprateek1org.hibernate.dialect.OracleDialecttruecreateStaticjavaclasstoestablish

java - 可嵌入对象集合的级联删除

我有一个实体A,它有一组基本类型(例如String)。我使用这样的映射是因为与A的每个实例关联的字符串取决于A的生命周期。如果我想从数据库中删除A的实例,我还希望删除其关联的String。我的映射如下:@EntitypublicclassA{@Id@GeneratedValue(strategy=GenerationType.AUTO)privateLongid;@Column(name="name",nullable=false,unique=true)privateStringname;@ElementCollection(fetch=FetchType.EAGER)@Collec

java - 有没有办法在没有 persistence.xml 的情况下为 Spring 的 LocalContainerEntityManagerFactoryBean 提供 persistenceUnitName?

我有多个数据源和多个EntityManagerFactories要在我的spring上下文中定义。如果只有EntityManagerFactory,我们不需要提供persistenceUnitName。但是要关联EntityManager以使用@PersistenceContext更正EntityManagerFactory,我应该提供unitName="somePU"属性。但是如果我们为persistenceUnitName属性命名,那么Spring期望在persistence.xml文件中有这些persistenceUnitName声明。有没有办法在没有persistence.xm

java - 如何在 jpa 监听器中获取实体管理器或事务

我使用Hibernate事件监听器,如PostDeleteEventListener、PostInsertEventListener、PostUpdateEventListener在插入、删除和更新期间执行一些操作。现在我想使用JPA监听器来执行此操作,因为如果我想从Hibernate转移到任何其他JPA提供程序,我的监听器应该可以工作。Hibernate监听器为我提供了event,我可以从中获取事务并检查它是已提交还是回滚。JPA监听器仅向我提供实体对象。现在如何在JPA监听器中获取事务或session或实体管理器?提前致谢!!我正在使用Jboss作为我的CMT。

java - 使用 EntityManager 更新 Hibernate

我正在使用Hibernate4.1.7并尝试更新对象,但没有文档说明应该如何完成。目前,我正在这样做:Personperson=personDao.getPersonById(1);person.setAge(23);person.setLastname("McName");person=personDao.update(person);在PersonDao中更新如下:publicPersonupdate(Personperson){returnentityManager.merge(person);}在PersonDao中getPersonById是:publicPersongetP