标签: jpa

org.hibernate.HibernateException:当'hibernate.dialect'未设置时,对DialectResolutionInfo的访问不能为null

我正在尝试运行一个spring-boot应用程序,它通过spring-jpa使用hibernate,但是我收到了这个错误:

Caused by: org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set
        at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.determineDialect(DialectFactoryImpl.java:104)
        at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.buildDialect(DialectFactoryImpl.java:71)
        at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:205)
        at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:111)
        at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:234)
        at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:206)
        at org.hibernate.cfg.Configuration.buildTypeRegistrations(Configuration.java:1885)
        at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1843)
        at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:850)
        at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:843)
        at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.withTccl(ClassLoaderServiceImpl.java:398)
        at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:842)
        at org.hibernate.jpa.HibernatePersistenceProvider.createContainerEntityManagerFactory(HibernatePersistenceProvider.java:152)
        at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:336)
        at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:318)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1613)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1550)
        ... 21 more
Run Code Online (Sandbox Code Playgroud)

我的pom.xml文件是这样的:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.1.8.RELEASE</version>
</parent>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-web</artifactId>
       </dependency>
    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-config</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-taglibs</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId> …
Run Code Online (Sandbox Code Playgroud)

java hibernate jpa maven spring-boot

178
推荐指数
10
解决办法
27万
查看次数

Hibernate vs JPA vs JDO - 各自的优点和缺点?

我熟悉ORM作为一个概念,几年前我甚至将nHibernate用于.NET项目; 但是,我没有跟上Java中的ORM主题,也没有机会使用这些工具.

但是,现在我可能有机会开始为我们的某个应用程序使用一些ORM工具,以试图摆脱一系列遗留Web服务.

我很难说出JPA规范之间的差异,你对Hibernate库本身的看法,以及JDO提供的内容.

所以,我知道这个问题有点开放,但我希望得到一些意见:

  • 各自的优点和缺点是什么?
  • 你会建议哪个新项目?
  • 当使用一个框架与另一个框架有意义时,是否存在某些条件?

java orm hibernate jpa jdo

173
推荐指数
9
解决办法
11万
查看次数

JPA 2.0 orphanRemoval = true删除Cascade时的VS.

我对JPA 2.0 orphanRemoval属性有点困惑.

当我使用JPA提供程序的数据库生成工具创建底层数据库DDL以获得ON DELETE CASCADE特定关系时,我想我可以看到它是必需的.

但是,如果数据库存在并且它已经存在ON DELETE CASCADE关系,那么这还不足以级联删除吗?什么是orphanRemoval除了做?

干杯

hibernate jpa cascade cascading-deletes jpa-2.0

172
推荐指数
7
解决办法
13万
查看次数

如何使用spring-data-jpa更新实体?

好吧,这个问题几乎说明了一切.使用JPARepository如何更新实体?

JPARepository只有一个save方法,它不会告诉我它是否实际创建或更新.例如,我将一个简单的Object插入数据库User,它有三个字段:firstname和lastname以及age:

 @Entity
 public class User {

  private String firstname;
  private String lastname;
  //Setters and getters for age omitted, but they are the same as with firstname and lastname.
  private int age;

  @Column
  public String getFirstname() {
    return firstname;
  }
  public void setFirstname(String firstname) {
    this.firstname = firstname;
  }

  @Column
  public String getLastname() {
    return lastname;
  }
  public void setLastname(String lastname) {
    this.lastname = lastname;
  }

  private long userId;

  @Id
  @GeneratedValue(strategy=GenerationType.AUTO)
  public long getUserId(){
    return this.userId;
  }

  public …
Run Code Online (Sandbox Code Playgroud)

java jpa spring-data-jpa

171
推荐指数
8
解决办法
31万
查看次数

在双向JPA OneToMany/ManyToOne关联中,"关联的反面"是什么意思?

TopLink JPA Annotation Reference的这些示例中:

例1-59 @OneToMany - 使用泛型的客户类

@Entity
public class Customer implements Serializable {
    ...
    @OneToMany(cascade=ALL, mappedBy="customer")
    public Set<Order> getOrders() { 
        return orders; 
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

例1-60 @ManyToOne - 带有泛型的订单类

@Entity
public class Order implements Serializable {
    ...
    @ManyToOne
    @JoinColumn(name="CUST_ID", nullable=false)
    public Customer getCustomer() { 
        return customer; 
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

在我看来,该Customer实体是该协会的所有者.但是,在mappedBy同一文档中对属性的解释中,写成:

如果关系是双向的,则将关联的反向(非拥有)侧的mappedBy元素设置为拥有该关系的字段或属性的名称,如示例1-60所示.

但是,如果我没有错,看起来在示例中,mappedBy实际上是在关联的拥有方指定,而不是非拥有方.

所以我的问题基本上是:

  1. 在双向(一对多/多对一)关联中,哪个实体是所有者?我们如何指定一方作为所有者?我们如何指定多方作为所有者?

  2. 什么是"关联的反面"?我们怎样才能将一面指定为反面?我们如何将多边指定为反面?

java hibernate jpa

160
推荐指数
4
解决办法
11万
查看次数

JPA:如何将本机查询结果集转换为POJO类集合

我在我的项目中使用JPA.

我来到一个查询,我需要在五个表上进行连接操作.所以我创建了一个返回五个字段的本机查询.

现在我想将结果对象转换为包含相同五个字符串的java POJO类.

在JPA中是否有任何方法可以直接将该结果转换为POJO对象列表?

我来到以下解决方案..

@NamedNativeQueries({  
    @NamedNativeQuery(  
        name = "nativeSQL",  
        query = "SELECT * FROM Actors",  
        resultClass = db.Actor.class),  
    @NamedNativeQuery(  
        name = "nativeSQL2",  
        query = "SELECT COUNT(*) FROM Actors",  
        resultClass = XXXXX) // <--------------- problem  
})  
Run Code Online (Sandbox Code Playgroud)

现在在resultClass中,我们是否需要提供一个实际的JPA实体类?或者我们可以将它转换为包含相同列名的任何JAVA POJO类吗?

java jpa

156
推荐指数
7
解决办法
32万
查看次数

将Hibernate代理转换为真实实体对象

在Hibernate期间Session,我正在加载一些对象,并且由于延迟加载,其中一些被加载为代理.一切都好,我不想把懒人装完.

但后来我需要通过RPC将一些对象(实际上是一个对象)发送到GWT客户端.碰巧这个具体对象是代理.所以我需要把它变成一个真实的对象.我在Hibernate中找不到类似"实现"的方法.

如何知道他们的类和ID,将一些对象从代理转换为实际?

目前,我看到的唯一解决方案是从Hibernate的缓存中驱逐该对象并重新加载它,但由于许多原因它真的很糟糕.

java proxy hibernate jpa lazy-loading

153
推荐指数
6
解决办法
9万
查看次数

Java中的@UniqueConstraint注释

我有一个Java bean.现在,我想确保该字段应该是唯一的.我使用以下代码:

@UniqueConstraint(columnNames={"username"})
public String username;
Run Code Online (Sandbox Code Playgroud)

但是我收到了一些错误:

@UniqueConstraint is dissallowed for this location
Run Code Online (Sandbox Code Playgroud)

什么是使用独特约束的正确方法?

注意:我正在使用play框架.

java jpa

153
推荐指数
8
解决办法
20万
查看次数

Spring CrudRepository findByInventoryIds(List <Long> inventoryIdList) - 相当于IN子句

在Spring CrudRepository中,我们是否支持字段的"IN子句"?即类似于以下内容?

 findByInventoryIds(List<Long> inventoryIdList) 
Run Code Online (Sandbox Code Playgroud)

如果没有这样的支持,可以考虑哪些优雅的选择?针对每个id的触发查询可能不是最佳的.

java spring jpa spring-data spring-data-jpa

150
推荐指数
3
解决办法
16万
查看次数

如何查看JPA发出的SQL查询?

当我的代码发出这样的调用时:

entityManager.find(Customer.class, customerID);
Run Code Online (Sandbox Code Playgroud)

如何查看此调用的SQL查询?假设我没有访问数据库服务器来分析/监控调用,是否可以在我的IDE中记录或查看JPA调用发出的相应SQL查询?我使用jTDS驱动程序反对SQL Server 2008 R2.

java jpa

148
推荐指数
7
解决办法
23万
查看次数