相关疑难解决方法(0)

从Hibernate 4.3.6迁移到Hibernate 5

我有一个旧项目,在该项目中我使用了Java API中的Date,并且要将其更改为新的Java 8 Date API LocalDateTime。我读到5之前的Hibernate版本不支持新的Java 8 Date API,因此我决定从Hibernate 4.3.6迁移到5。在旧项目版本中,一切正常,但是当我更改Hibernate版本时,出现错误我尝试启动我的应用程序:

    wrz 21, 2015 7:14:23 PM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jre1.8.0_31\bin;C:\windows\Sun\Java\bin;C:\windows\system32;C:\windows;C:/Program Files/Java/jre1.8.0_31/bin/server;C:/Program Files/Java/jre1.8.0_31/bin;C:/Program Files/Java/jre1.8.0_31/lib/amd64;D:\oraclexe\app\oracle\product\11.2.0\server\bin;;C:\ProgramData\Oracle\Java\javapath;D:\oraclexe\app\oracle\product\11.2.0\server\bin;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;C:\windows\system32;C:\windows;C:\windows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\WIDCOMM\Bluetooth Software\;C:\Program Files\WIDCOMM\Bluetooth Software\syswow64;C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.0\;D:\Program Files\eclipse;;.
wrz 21, 2015 7:14:23 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: …
Run Code Online (Sandbox Code Playgroud)

java spring jpa hibernate-4.x hibernate-5.x

6
推荐指数
1
解决办法
3686
查看次数

从Hibernate 4迁移到5

我尝试迁移到使用Hibernate 5的Spring Boot 1.4.我有一些包含表创建的MariaDB数据库的备份脚本.

由于Spring Boot中的spring-data-jpa,我的实体正在使用以下id生成策略.

@GeneratedValue(strategy = GenerationType.AUTO)
Run Code Online (Sandbox Code Playgroud)

在我的application.properties

spring.jpa.generate-ddl=true
spring.jpa.hibernate.use-new-id-generator-mappings=false
Run Code Online (Sandbox Code Playgroud)

Hibernate团队通常不建议使用此设置(false值).

如果我让hibernate生成表,看起来与备份脚本中的那个有些不同.

如果我使用关于生成器的假值并使用备份脚本并在此之后设置为true,我会遇到一些关于oreign键的问题

无法添加或更新子行:外键约束失败...

如果我保持虚假,我会得到相同的结果.

我可以使用什么策略迁移到Hibernate 5的新生成器并拥有旧数据库(不是结构)的数据?

有没有办法保持更通用?不是特定于Hibernate

hibernate mariadb spring-data-jpa spring-boot

5
推荐指数
1
解决办法
5711
查看次数

引起:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:表'test.hibernate_sequence'不存在

我正在OneToOne研究Hibernate的映射示例并面临以下错误:我不确定这里出了什么问题.请指导.

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'test.hibernate_sequence' doesn't exist
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:407)
    at com.mysql.jdbc.Util.getInstance(Util.java:382)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1052)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3603)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3535)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1989)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2150)
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2626)
    at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2119)
    at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2281)
    at org.hibernate.id.enhanced.TableStructure.executeQuery(TableStructure.java:224)
    at org.hibernate.id.enhanced.TableStructure.access$300(TableStructure.java:46)
    at org.hibernate.id.enhanced.TableStructure$1$1.execute(TableStructure.java:139)
    at org.hibernate.id.enhanced.TableStructure$1$1.execute(TableStructure.java:126)
    at org.hibernate.jdbc.WorkExecutor.executeReturningWork(WorkExecutor.java:55)
    at org.hibernate.jdbc.AbstractReturningWork.accept(AbstractReturningWork.java:34)
    at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcIsolationDelegate.delegateWork(JdbcIsolationDelegate.java:56)
    ... 13 more
Run Code Online (Sandbox Code Playgroud)

Vehicle.java

@Entity
@Table(name="VEHICLE")
public class Vehicle {
    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    @Column(name="VEHICLE_ID")
    private Integer vehicleId;

    @Column(name="VEHICLE_NAME")
    private String vehicleName;
    // setter and getters
} …
Run Code Online (Sandbox Code Playgroud)

java mysql hibernate

1
推荐指数
1
解决办法
1万
查看次数