草庐IT

java - 如何让 Hibernate 在与 JPA 一起使用时自动在数据库中创建表?

我是JPA的新手,现在我正在尝试理解标准示例,我在网上阅读并看到了一些stackoverflow问题,我在所有这些问题中发现的是以下语句将允许hibernate在运行时创建表-时间。hibernate.hbm2ddl.auto=create但是每当我在mysql数据库中没有表的情况下运行我的代码时,它会抛出以下错误:._________/\\/___'_____(_)______\\\\(()\___|'_|'_||'_\/_`|\\\\\\/___)||_)|||||||(_||))))'|____|.__|_||_|_||_\__,|////=========|_|========

java - 无法执行 JPA 架构生成创建命令

我有一个在JDBC和MySQL上使用Hibernate的JPA应用程序,没有任何应用程序服务器。在我的persistence.xml中,我定义了从脚本创建、加载和删除数据库的规则:但是,当执行Maven测试目标时,出现以下错误:无法执行JPA架构生成创建命令[CREATETABLEcountry(]堆栈跟踪看起来像这样:Causedby:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMyS

mysql - 如何在范围列表之间选择行

我使用带有JPQL查询的JPA从MySQL数据库中检索数据。但是我的问题是逻辑性的而不是特定于语言的(我认为)......我想SELECT表的所​​有条目WHERE一栏在BETWEEN中范围列表。例如:SELECTxFROMmyTableWHERExBETWEEN2AND5ORxBETWEEN7AND9虽然范围(2-5,7-9)来自另一个表:RANGESex:id|from|to–––––––––––––––––––––––––id:INT1|2|5from:INT2|7|9to:INT3|9|154|17|null我的问题a)是,Ranges列表是动态的,可以只是一个范围,比如xBE

java - hibernate 异常 : Duplicate entry for key 'PRIMARY'

我的数据库中有这些(简化的)表我已经用这些(简化的)两个类映射了表格公司@EntitypublicclassCompany{@Id@GeneratedValue(strategy=GenerationType.IDENTITY)privateLongid;privateStringname;@OneToMany(fetch=FetchType.LAZY,cascade=CascadeType.PERSIST)@JoinTable(name="company_employee",joinColumns={@JoinColumn(name="company_id")},inverseJoi

java - jpa/hibernate 的实体更新问题

我有这个名为“Pagina”的实体类,我想根据对实体所做的更改更新数据库中的条目。这是行不通的。我没有收到任何错误,但数据库没有更改。@Entity@Table(name="PAGINA")@NamedQueries({@NamedQuery(name="Pagina.findAll",query="SELECTpFROMPaginap"),@NamedQuery(name="Pagina.findHashByURL",query="SELECTp.chashFROMPaginapWHEREp.url=:url"),@NamedQuery(name="Pagina.findTimest

java - JPA 和 MySQL 事务隔离级别

我有一个native查询,可以批量插入到MySQL数据库中:Stringsql="insertintot1(a,b)selectx,yfromt2wherex='foo'";EntityTransactiontx=entityManager.getTransaction();try{tx.begin();introwCount=entityManager.createNativeQuery(sql).executeUpdate();tx.commit();returnrowCount;}catch(Exceptionex){tx.rollback();log.error(...);}此

mysql - SQL:排序后按列分组

给定一个包含name和rank列的表结构,name可能存在重复项,我如何获取这些行name唯一,最大rank?例如,假设有以下数据:+-------+-------+|name|rank|+-------+-------+|a|1||a|2||b|10||b|20||c|100||c|200|+-------+-------+查询应该返回:+-------+-------+|a|2||b|20||c|200|+-------+-------+我有以下解决方案非常慢,我怀疑它是O(N^2)。SELECTname,rankFROMbookstemp1WHERErank=(SELECTmax

java - EJB 3 编辑数据库记录

我在使用EJB和JPA更新数据库记录时遇到问题。持久性提供程序:org.eclipse.persistence.jpa.PersistenceProvider当我创建记录时,我使用的是这种方法:publicvoidcreate(Tentity){getEntityManager().persist(entity);}一切正常。现在我想编辑同一条记录。例如我有一个实体:@Entity@Table(name="OPERATION")publicclassOperationimplementsSerializable{@Id@GeneratedValue(strategy=Generatio

java - 带有 JPA 的 MySQL 中的 Precision Java Float (EclipseLink)

我在通过jpa(EclipseLink)在mysql中存储浮点值时遇到精度问题。在我的代码中,我用注释了该字段@Column(precision=15,scale=7)privatefloatx;但是当我存储像322,249878这样的值时,数据库返回322.25。那里发生了什么:)? 最佳答案 precision和scale设置仅适用于精确数字类型(即Java中的BigDecimal和decimalMySQL)。浮点类型(float和double)本质上是近似值,因此这些设置对它们没有意义。另请注意,如果您将此字段的类型更改为Bi

java - 如何在 jdbc url 中放入和号 (&)?

我有一个带有glassfish服务器并使用EclipseLink(JPA2.1)的动态应用程序。我以前可以直接把jdbc配置放在persistence.xml里面,没有任何问题。但现在它迫使我为glassfish创建一个数据源名称,并将jdbc配置放入glassfish-resources.xml文件中。问题是我想将mysql的字符编码设置为utf8,因此,我使用以下url作为jdbcurl:jdbc:mysql://localhost:3306/fastfood?zeroDateTimeBehavior=convertToNull;&characterEncoding=UTF