草庐IT

Spring Boot 篇四: Spring Data JPA使用SQL Server

本文目录SQLServerExpress的安装或直接DockerSQLServerJDBCDriverTCP/IP链接端口IntegratedSecuritySSL总结本篇介绍篇一至篇三中用到的JPA链接SQLServer的具体情况以及实战过程中可能遇到的问题。SQLServerExpress的安装或直接Docker具体的下载和安装教程,请参阅微软SQLServer官网;SQLServerExpress是免费的,并且配套的SQLServerManagementStudio也是可以用的。呃,当然,使用Docker来运行SQLServer是另外一条路径。具体请参阅DockerHub文档SQLSer

java - 如何使用查询而不是带有 JPA 的 @JoinColumn 映射实体关联?

我将Hibernate4.1.3.Final与JPA2.1和MySQL5.5.37一起使用。我有一个具有以下字段的实体:@Entity@Table(name="category",uniqueConstraints={@UniqueConstraint(columnNames={"NAME"})})publicclassCategoryimplementsSerializable,Comparable{privatestaticfinallongserialVersionUID=1L;@Id@Column(name="ID")@GeneratedValue(generator="uui

java - 如何使用查询而不是带有 JPA 的 @JoinColumn 映射实体关联?

我将Hibernate4.1.3.Final与JPA2.1和MySQL5.5.37一起使用。我有一个具有以下字段的实体:@Entity@Table(name="category",uniqueConstraints={@UniqueConstraint(columnNames={"NAME"})})publicclassCategoryimplementsSerializable,Comparable{privatestaticfinallongserialVersionUID=1L;@Id@Column(name="ID")@GeneratedValue(generator="uui

mysql - JPA一对多删除并将外键设置为null

我使用SpringData、JPA、Hibernate和MySQL。我在事件和类别之间有一对多的关系。显然,一个事件只能有一个类别,而一个类别可以分配多个事件。当我尝试删除类别时出现问题,如果任何事件持有该类别的外键,那么我会收到错误消息。我想在删除类别时将事件表中的外键设置为空。目前,我通过在代码中显式设置外键来更新所有事件,方法是在删除类别之前将其更新为null。使用注解有什么办法吗?这是我的类别:@Entity@Table(name="category")publicclassCategoryimplementsSerializable{@OneToMany(mappedBy="

mysql - JPA一对多删除并将外键设置为null

我使用SpringData、JPA、Hibernate和MySQL。我在事件和类别之间有一对多的关系。显然,一个事件只能有一个类别,而一个类别可以分配多个事件。当我尝试删除类别时出现问题,如果任何事件持有该类别的外键,那么我会收到错误消息。我想在删除类别时将事件表中的外键设置为空。目前,我通过在代码中显式设置外键来更新所有事件,方法是在删除类别之前将其更新为null。使用注解有什么办法吗?这是我的类别:@Entity@Table(name="category")publicclassCategoryimplementsSerializable{@OneToMany(mappedBy="

java - 通过 JPA 随机选择行

在Mysql中,SELECTidFROMtableORDERBYRANDOM()LIMIT5这个sql可以随机选择5行。如何通过JPAQuery(Hibernate作为提供者,Mysql数据库)来做到这一点?谢谢。 最佳答案 只有规范中定义的函数才能保证得到所有JPA提供程序的支持,RAND或RANDOM则不然。所以我不认为你可以在JPQL中做到这一点。但是,在HQL中是可以的(HQL中的orderby子句被传递到数据库,因此您可以使用任何函数):Stringquery="SELECTo.idFROMOrderoORDERBYran

java - 通过 JPA 随机选择行

在Mysql中,SELECTidFROMtableORDERBYRANDOM()LIMIT5这个sql可以随机选择5行。如何通过JPAQuery(Hibernate作为提供者,Mysql数据库)来做到这一点?谢谢。 最佳答案 只有规范中定义的函数才能保证得到所有JPA提供程序的支持,RAND或RANDOM则不然。所以我不认为你可以在JPQL中做到这一点。但是,在HQL中是可以的(HQL中的orderby子句被传递到数据库,因此您可以使用任何函数):Stringquery="SELECTo.idFROMOrderoORDERBYran

java - 需要在 5 秒内使用 hibernate 在 mysql 中插入 100000 行

我正在尝试使用Hibernate(JPA)在5秒内在MYSQL表中插入100,000行。我已经尝试了hibernate提供的每一个技巧,但仍然不能超过35秒。第一个优化:我从IDENTITY序列生成器开始,插入需要60秒。后来我放弃了序列生成器并开始分配@Id通过阅读MAX(id)并使用AtomicInteger.incrementAndGet()自己分配字段。这将插入时间减少到35秒。第二次优化:我通过添加启用批量插入30truethreadtrue到配置。我震惊地发现批量插入完全没有减少插入时间。还是35秒!现在,我正在考虑尝试使用多个线程进行插入。有人有任何指示吗?我应该选择Mo

java - 需要在 5 秒内使用 hibernate 在 mysql 中插入 100000 行

我正在尝试使用Hibernate(JPA)在5秒内在MYSQL表中插入100,000行。我已经尝试了hibernate提供的每一个技巧,但仍然不能超过35秒。第一个优化:我从IDENTITY序列生成器开始,插入需要60秒。后来我放弃了序列生成器并开始分配@Id通过阅读MAX(id)并使用AtomicInteger.incrementAndGet()自己分配字段。这将插入时间减少到35秒。第二次优化:我通过添加启用批量插入30truethreadtrue到配置。我震惊地发现批量插入完全没有减少插入时间。还是35秒!现在,我正在考虑尝试使用多个线程进行插入。有人有任何指示吗?我应该选择Mo

java - BigDecimal 的 JPA @Size 注释

如何对MySQLDECIMAL(x,y)列使用@Size注释?我正在使用BigDecimal,但是当我尝试包含@Sizemax时它不起作用。这是我的代码:@Size(max=7,2)@Column(name="weight")privateBigDecimalweight; 最佳答案 您可以直接使用HibernateValidator,并用@Digits注释您的字段像这样:@Digits(integer=5,fraction=2)@Column(name="weight")privateBigDecimalweight;