草庐IT

java - 是否有必要使用 JPA 和 MySQL 获取实体以引用它?

我有一个应用程序创建了许多行,这些行引用了另外两个实体,即行中有两个外键引用实现了ManyToOne关系。这些是被引用的两个实体:CREATETABLEa(`id`INTNOTNULLauto_increment,--lotsofotherattributes,PRIMARYKEY(id))CREATETABLEb(`id`INTNOTNULLauto_increment,--lotsofotherattributes,PRIMARYKEY(id))这是引用a和b的实体:CREATETABLEx(`id`INTNOTNULLauto_increment,`f_a`INTNOTNULL,

mysql - 确保关闭 EntityManager 连接的正确方法是什么?

我们的DAO层中有19个方法,每个方法都是以下方法的一些变体:publicTicketPropsaveTicketProp(TicketPropprop){EntityManagerem=this.emf.createEntityManager();try{em.getTransaction().begin();prop=(TicketProp)em.merge(prop);em.getTransaction().commit();returnprop;}finally{em.close();}}含义:在每个方法中我们处理自己的事务并在finallyblock中关闭它。我们正在测试Je

java - 数据截断错误 - 列数据太长

有趣的是在实体中:publicstaticfinalintmaxContentSize=2097152;//2Mb@Lob@Column(length=maxContentSize)privatebyte[]content;@Column(length=100)privateStringmimetype;@Column(length=50)privateStringfileName;然而,一些文件(65-70k大小)插入正常,但大多数文件出现错误:com.mysql.jdbc.MysqlDataTruncation:Datatruncation:Datatoolongforcolumn

java - HIbernate 不能用外键删除实体。外键设置为空

这个问题在这里以多种形式被问到,但似乎没有一个解决方案对我有用。我正在尝试删除父实体,并且我希望所有子实体也被删除。我的实体:@Entity@Table(name="item",catalog="myshchema")publicclassItemimplementsjava.io.Serializable{@JoinColumn(name="item_id",insertable=false,updatable=false,nullable=false)@OneToMany(cascade=CascadeType.ALL,fetch=FetchType.EAGER,orphanRem

java - 删除 1 年多以前的记录

我正在使用springJPA存储库将Twitter推文保存在我的数据库中。推文的日期在MySQL数据库中保存为Datetime。现在我想删除所有超过一年的推文。我看到有函数CURRENT_TIME,我想到了类似CURRENT_TIME-360的东西。我知道那不是正确的语法,但我不知道该怎么做。这是我所拥有的:@Modifying@Transactional@Query("DELETEFROMTweetposttWHEREt.createdAt>")intremoveOlderThan();编辑已解决:存储库:@Modifying@Transactional@Query("DELETEF

java - Java SE : Object: entity. Customer@5e80188f 上的 JPA 不是已知实体类型

我在关注https://glassfish.java.net/javaee5/persistence/persistence-example.html在JavaSE环境中测试JPA。在Eclipse中,我:创建了一个新的JPA(2.1)项目;在选项->JPA->持久类管理中,我选择了“自动发现带注释的类”而不是“带注释的类必须列在persistence.xml中”。我成功导入了zip文件(Client.javaCustomer.javaOrder.java)中的树Java类,并修改了persistence.xml文件以满足我的需要。但是在尝试执行main时出现以下错误。[ELInfo]

mysql - @GeneratedValue 不起作用。 "java.sql.SQLException: Field ' ID'没有默认值”

上下文:Jboss5.1,MySql5.0我已经尝试了很多可能性..一个简单的@GeneratedValue或其他明确指定序列生成器的解决方案,但也有同样的问题......有堆栈跟踪22:00:53,334INFO[STDOUT]Hibernate:insertintoLavoro(nome,userIDrichiedente,sede,stato)values(?,?,?,?)22:00:53,341WARN[JDBCExceptionReporter]SQLError:1364,SQLState:HY00022:00:53,342ERROR[JDBCExceptionReporte

java - JPA @Column 注释创建评论/描述

我想知道是否可以从jpa/hibernate注释创建一个数据库列描述/评论,如下所示:ALTERTABLEtablenameCHANGEstatusstatusINT(11)NOTNULLCOMMENT'样本描述/评论';这将是一个很棒的功能,但我在JPA规范中找不到任何相关信息。也许我应该使用@Column(columnDefinition="")属性,但我没有任何线索。请帮忙 最佳答案 我找到了我自己问题的答案。我不确定可以吗?它适用于所有数据库吗?肯定它适用于mysql。这是工作代码:@Column(columnDefinit

mysql - 使用 Hibernate native 查询插入不适用于 java.util.Date

我将HibernateJPA和Spring与Mysql数据库一起使用,我想使用如下SQL语句进行插入:DatesaveDate=newDate();java.sql.TimestamptimeStampDate=newTimestamp(saveDate.getTime());QuerypersistableQuery=entityManager.createNativeQuery("INSERTINTOTASK_ASSESSMENT(ACTIVE_FLAG,ASSESSMENT_DATE,DESCRIPTION,"+"TITLE,NEEDS_LEVEL_ID,PATIENT_ID,U

java - Hibernate OnDelete Cascade 不适用于 MySql 但适用于 postgres 和 Ms-Sql

我有2个实体。Thread实体和Post实体使用来自Post->Thread的OnetoOne映射。Thread实体包含许多Posts。我知道我应该使用OnetoMany而不是OnetoOne,但是为了避免所有的集合问题,我使用了OnetoOne现在的问题是,当我删除一个Thread时,所有与之关联的post也必须被删除。我通过使用成功地做到了@OnDelete(action=OnDeleteAction.CASCADE)但它只适用于Postgres和Ms-SQl,不适用于MySql(也尝试过InnoDb)。ondelete级联不是在架构生成查询中生成的。代码如下//ThreadEnt