草庐IT

Hibernate

全部标签

java - Spring 数据 jpa LazyInitializationException : no Session

我对Spring-data-jpa项目有疑问。Java配置文件...@Configuration@EnableJpaRepositories("it.myproject.data")@EnableTransactionManagement(mode=AdviceMode.ASPECTJ,proxyTargetClass=true)@PropertySource("classpath:/it/myproject/application.properties")publicclassDBConfig{privatestaticfinalStringPROPERTY_NAME_ENTITYM

java - 在 Hibernate 之前运行 SpringLiquibase

我正在使用SpringLiquibase在应用程序启动期间自动应用我的liquibase更新。一般来说,这工作正常,但是当我将hibernate.hbm2ddl.auto设置为“验证”时,hibernate在liquibase似乎有机会应用更新之前开始提示数据库方案。我的配置如下所示:@Configuration@EnableTransactionManagement@ComponentScan(basePackages="com.myapp")@PropertySource(value={"classpath:myapp.properties"})@EnableJpaReposito

java - 具有一部分复合主键的 Hibernate 外键

我必须使用Hibernate,但我不太确定如何解决这个问题,我有2个表,它们具有1..n的关系,如下所示:-------TABLE_A-------col_b(pk)col_c(pk)[otherfields]-------TABLE_B-------col_a(pk)col_b(pk)(fkTABLE_A.col_b)col_c(fkTABLE_A.col_c)[otherfields]我如何使用Hibernate来管理它?我不知道如何声明包含一部分主键的外键。我的数据库模式是从Hibernate模型生成的。 最佳答案 我找到了解

java - jpa查询中加入和路径导航的区别

我有以下2个实体:classUser{privateStringname;privateUserTypeuserType;}classUserType{privateStringname;}我想获取用户类型名称等于“admin”的所有用户。我可以编写以下2个返回相同结果的查询。selectufromUseruwhereu.userType.name='admin';和selectufromUserujoinu.userTypeutwhereut.name='admin';只是想了解哪种方法更可取,有什么区别。如果我始终可以使用实体之间的导航获得结果,我什么时候要遵循连接方法?

java - 在 JPA Criteria API 的子查询中使用 ORDER BY 的替代方法是什么?

考虑以下两个表:项目(id,project_name)状态(id、id_project、status_name)其中Status包含Project所处的所有状态。假设我们要查询最新状态名称为“new”的所有项目。我提出的Sql查询是:SELECTq.id_projectFROMstatusqWHEREq.status_namelike'new'ANDq.idIN(SELECTTOP1sq.idfromstatussqWHEREq.id_project=sq.id_projectORDERBYsq.idDESC)我正在尝试使用CriteriaAPI复制上述查询,我​​注意到类Criter

java - 如何禁用双向关联的 Hibernate 外键约束?

我正在尝试禁用在我的双向关联上生成的外键约束。我已设法为所有单向关联执行此操作,但出于某种原因,它在这里不起作用。我确实知道最近在Hibernate5.x中修复的ContraintMode.NO_CONSTRAINT错误,并且我正在运行最新的Hibernate5.2.6。我的注释目前看起来像这样:classParent{@OneToMany(mappedBy="parent",cascade=CascadeType.ALL,orphanRemoval=true)@OrderColumn(name="childIndex")publicListgetChildren(){returnch

java - Hibernate 与 sqlserver 死锁问题

以下是两个表及其实体类。tbl_rules|规则编号|规则名称|@Entity@Table(name="db_user_name.tbl_rules")publicclassRuleimplementsSerializable{privatestaticfinallongserialVersionUID=1L;@Id@Basic(optional=false)@GenericGenerator(name="incre",strategy="increment")@GeneratedValue(generator="incre")@Column(name="rule_id",unique

java - 如何将 DTO 映射到现有的 JPA 实体?

我正在尝试将JavaDTO对象映射到现有的JPA实体对象,而无需执行以下操作:publicMyEntitymapToMyEntity(SomeDTOdto,MyEntityentity){entity.setField1(dto.getField1());entity.setField2(dto.getField2());...entity.setField20(dto.getField20());returnentity;}到目前为止,我一直在使用ModelMapper像这样:MyEntityentity=modelMapper.map(dto,SomeDTO.class);,但我想

java - PESSIMISTIC_WRITE 是否锁定了整个表?

只是为了确保我正确理解事情是如何运作的。如果我执行em.lock(employee,LockModeType.PESSIMISTIC_WRITE);-它会只阻止这个实体(employee)还是整个表Employees?如果重要的话,我说的是PostgreSQL。 最佳答案 它应该只阻止实体。PostgreSQLhibernatedialect在写锁的情况下添加forupdate:https://github.com/hibernate/hibernate-orm/blob/master/hibernate-core/src/main

java - Java 和 Hibernate 的继承 - 更新类型转换

我的类(class)有以下层次结构@Entity@Table(name="Parent")@Inheritance(strategy=InheritanceType.SINGLE_TABLE)publicclassParent{}@Entity@DiscriminatorVlaue("FirstChild")publicclassFirstChildextendsParent{}@Entity@DiscriminatorVlaue("SecondChild")publicclassSecondChildextendsParent{}这会按预期创建一个表Parent。我的应用中的一些业务