草庐IT

jpa-criteria

全部标签

java - 交易不活跃 - hibernate - JPA

我有这个类专门用于通过hibernate的持久层将数据保存在数据库中。publicclassTLinkEquipementDAOImplimplementsTLinkEquipementDAO{privatestaticfinalLoglog=LogFactory.getLog(TLinkEquipementDAOImpl.class);@PersistenceContextprivateEntityManagerFactoryemf=PersistenceManager.getInstance().getEntityManagerFactory();privateEntityMana

java - 如何使用 Spring Data JPA 查询 map 值?

所以我的数据库模型是这样的:我有Stores和每个Store有一个本地化名称。所以我选择将本地化名称表示为Map像这样:publicclassStore{privateMapname;}如您所见,它是的mapLocalizedValue在哪里是这样一个类:@EmbeddablepublicclassLocalizedValue{@Column(name="value")privateStringvalue;}一切都很好。但是我遇到了一个问题,我想查询我的SpringDataJPA存储库并找到所有具有给定英文名称的商店。所以我的存储库方法如下所示:StorefindByName(Map.

Java JPA : Performant check if Entity is already in DB

使用JPA检查实体是否已在数据库中的最佳方法/最佳实践是什么?我正在编写一个将主机信息添加到数据库的客户端。例如附加的存储lun、hba等...如果我想为主机添加一个Lun,我必须检查该lun是否已经在数据库中。(Lun可以附加到另一个主机上)。我看到了2种可能性:我选择了Lun,检查它是否已经在数据库中尝试插入Lun并检查异常(唯一约束)有人有这方面的经验吗?BR,雷内 最佳答案 entityManager.find(SomeEntity.class,id)Returns:thefoundentityinstanceornulli

java - Play Framework JPA : how to implement one-to-many relationship?

我有一个Posts模型,每个帖子还包含Blocks(也是一个模型)。我正在为这个网站使用PlayFramework,我想做的是在一个页面上显示X个帖子及其所有block。JPA(或PlayFramework的实现,不知道它是哪个)有find()方法,我可以用它在我的Controller中查询帖子,然后我会将帖子列表发送到我的像这样看:render(postList);我想知道什么是将每个帖子的block发送到View的最佳方式。我可以向我的Post模型添加一个getBlocks()方法,它发回一个blocksList,并从View中调用它,但这对我来说似乎很困惑,而且它会破坏MVC的目

java - 外键中的 JPA/Hibernate OneToOne Null

我有以下两个具有双向OneToOne关系映射的实体,数据访问由HibernateEntityManagerv.“3.5.1-Final”提供。@Entity@Table(name="details")publicclassDetails{privateLongid;privateUseruser;publicvoidsetUser(Useruser){this.user=user;}@OneToOne@JoinColumn(name="user_id")publicUsergetUser(){returnuser;}@Id@GeneratedValue(strategy=Generat

java - HQL 或 Criteria 中的 CASE 语句

源自thisquestion,是否可以对以下SQL语句使用HQL或Criteria:SELECTe.type,count(e),count(d),count(casewhengender='male'then1elseNULLend)ASNumberOfMaleEmployeesfromDepartmentdJOINd.employeeseWHEREe.dead='maybe'GROUPBYe.type虽然google提出了一些HQL支持CASE语句的结果,但Hibernate3.6.6失败了QuerySyntaxException:unexpectedtoken:CASE当我在Ent

java - 能否说服 JPA 在例如 UUID 和字符串之间进行转换?

我有一个Java对象,它有一个UUID字段。我希望能够以明显的方式将这个对象持久化到数据库中;然而,Basic映射将使用Java序列化来编写它,而我希望UUID以其明显的字符串形式出现。有没有办法为该字段提供一个UUID字符串转换器到JPA,该字段将在读取和写入时使用,以便我可以自然地处理这种类型? 最佳答案 ChrisLercher评论Note:StartingfromJPA2.1,a@ConvertannotationcanbeusedwithanAttributeConverter.这种方法效果很好,并且与任何JPA提供程序兼

java - JPA事务隔离和实体锁的区别

我已经阅读了有关事务隔离级别的内容。它用于防止并行事务执行错误。这很明显。还有可用于实体的锁定模式。我了解它们的工作原理。但是我找不到需要锁定的原因?我已经使用过事务隔离级别。为什么我必须使用锁定?隔离级别和锁定做同样的工作吗? 最佳答案 事务隔离和JPA实体锁都是并发控制机制。transactionisolation应用于JDBC连接级别,范围是事务生命周期本身(您不能更改与当前正在运行的事务的事务隔离)。现代数据库允许您同时使用2PL(two-phaselocking)隔离级别和MVCC那些(SNAPSHOT_ISOLATION

java - Spring 数据 JPA 中 getReference 方法的替代方法

我发现自己很难在SpringDataJPA中实现可自定义的方法。例如,我有一个Pet类,它有一个所有者(多对一关系)。如果我有一个方法到save(Petpet,intownerId)怎么办?.我怎样才能得到ownerId?使用Hibernate我就可以getReference像那样publicPetsave(Petpet,intownerId){if(!pet.isNew()&&get(pet.getId(),ownerId)==null){returnnull;}pet.setUser(em.getReference(Owner.class,ownerId));if(pet.isNe

java - JPA/Hibernate 嵌入式 ID

我想做这样的事情:一个ReportingFile对象,可以是LogRequest或LogReport文件。(两者结构相同)Reporting对象包含一个logRequest,一个带有日期的logReport列表。我尝试设置一个EmbededId,这将是logRequest的一个属性。这就是我遇到的问题。我不是来管理嵌入式ID的。(http://docs.jboss.org/hibernate/stable/annotations/reference/en/html_single/#entity-mapping-identifier)如果你知道我应该怎么做:)一个例子(不工作)是:@En