草庐IT

java - 如何在JPA中保存外键实体

我有2个表customer和customerhistory。customhistory具有引用客户的customerId的外键customerId。在JPA生成的实体中,我在customerhistory类中有一个客户对象,而我只想在consumerhistory表中保存customerId我得到了正确的customerId,但是当我想保存属性customerId时,我只有customer对象,但在自动生成的consumerhistory实体类中没有customerId@EntitypublicclassCustomerhistoryimplementsSerializable{pri

java - 将多个@Id 用于复合主键时出现 Eclipse 错误

在我的模型项目中(它只有持久类,又名javabean),我有一个具有复合主键的类。为了映射这个,我在类里面使用了两个@Id。在hibernate4之前这是不可能的,但现在可以了。所以,问题是,eclipse在这个类中显示错误,说它应该以旧的方式完成。像这样:正如我所说,这是一个假错误,因为如果我执行代码,它就可以正常工作。我在eclipse上安装了JBossTools插件,但我不知道错误是由它还是由eclipse引起的。有人知道怎么解决这个问题吗?并不是说它阻止我执行该应用程序,而是始终显示错误是一件令人讨厌的事情。---编辑---所以,现在我知道问题出在JBoss工具上,因为我在项目

java - Hibernate的原生查询和缓存机制

我有一个关于Hibernate缓存机制的问题。我在文章中读到,在Hibernate中执行nativeSQLquery会使缓存的所有区域无效,因为Hibernate不知道它将影响哪个特定实体。这里所有区域的缓存意味着我们是在谈论二级缓存的各个区域还是二级缓存(一级缓存,二级缓存)或仅二级缓存或仅一级缓存? 最佳答案 使用SQLQuery,Hibernate无法知道您可能会影响哪些缓存区域,但幸运的是您可以明确地指示它:SQLQuerysqlQuery=session.createSQLQuery("UPDATECUSTOMERSET.

java - 如何使用 EclipseLink 在列中找到具有唯一值的值?

您可以使用EntityManager.find(ClassentityClass,ObjectprimaryKey)方法来查找具有主键的特定行。但是我如何在一个只有唯一值而不是主键的列中找到一个值呢? 最佳答案 您可以将适当的JPQL与TypedQuery结合使用.try{TypedQuerytq=em.createQuery("fromBeanWHEREcolumn=?",Bean.class);Beanresult=tq.setParameter(1,"uniqueKey").getSingleResult();}catch(N

java - 如何获得与使用 Java 使用的 JPA 相同的数据库连接?

我正在使用JasperReports生成报告。我正在使用临时表生成报告,我需要JPA在创建临时表时使用相同的连接,我该如何实现相同的目的。 最佳答案 可能你离这里只有三步之遥。你可以用下面的方式做到这一点将JTA数据源用于persistance.xml,如下所示java:comp/env/jdbc/DBConnectionDS....为了生成报告,从数据源中检索连接,如下所示InitialContextinitialContext=newInitialContext();DataSourcedataSource=(DataSourc

java - 如何为 JPA-Hibernate 定义非 JTA 数据源? org.hibernate.connection.DatasourceConnectionProvider - 找不到数据源 :

我正在尝试将我的Web应用程序的JDBC代码更改为使用Hibernate作为提供程序的JPA。我正在使用EclipseIDE。在那里我定义了一个MySQL数据源。我在persistence.xml中添加了它。但是,我收到以下错误。6640[30289364@qtp-7494106-7]ERRORorg.hibernate.connection.DatasourceConnectionProvider-Couldnotfinddatasource:tamSqljavax.naming.NameNotFoundException;remainingname'tamSql'我的persist

java - JPA获取实体对象的id

有谁知道我如何在hibernate中做同样的事情:session.getIdentifier(instance);使用JPA?EntityManager有一个contains方法,仅此而已!我正在编写一些代码,充当session中存储的实体和数据之间的转换器(因此不是存储序列化对象,而是仅存储类名和ID)。 最佳答案 在JPA2.0中你可以写em.getEntityManagerFactory().getPersistenceUnitUtil().getIdentifier(instance);

java - JPA 多对多关系 "JoinColumn cannot be resolved to a type"错误

我正在使用Springboot并尝试在用户和技能之间实现多对多关系。我有一个包含user_id和skill_id列的users_skills表。尝试实现关系时,我在STS中的@JoinColumn注释中不断收到“JoinColumn无法解析为类型”错误。下面是我的用户类@Entity@Table(name="users")publicclassUser{@Id@GeneratedValue(strategy=GenerationType.IDENTITY)privatelongid;privateStringemail;privateStringfirstName;privateStr

java - PSQL异常 : ERROR: syntax error at or near

我认为在JPA中有一个直接的关系。看起来像这样。公司组:@Entity@TablepublicclassCompanyGroupimplementsSerializable{privatestaticfinallongserialVersionUID=1L;@Id@GeneratedValueprivateLongid;@Column(name="name")privateStringname;@JoinColumn(name="companies")@OneToMany(fetch=FetchType.EAGER,cascade=CascadeType.ALL)privateList

java - 在 Maven 测试期间找不到 persistence.xml

我正在尝试在Maven构建期间将测试数据加载到测试数据库中以进行集成测试。persistence.xml被正确复制到target/test-classes/META-INF/,但在运行测试时出现此异常。javax.persistence.PersistenceException:NoPersistenceproviderforEntityManagernamedaimDatabase看起来它没有找到或加载persistence.xml。 最佳答案 刚刚用基于Maven/Eclipse的JPA项目解决了同样的问题。我的META-INF