草庐IT

java - 使用 JPQL 计算关联对象的正确方法

编写此JPA查询的正确方法是什么?我只是在猜测,因为我无法解决或无法在我的JPA书中找到它。Queryquery=em.createQuery("selectmfromMeetingmwherecount(m.attendees)=0");returnquery.getResultList();我目前正在使用Hibernate尝试此操作,但出现mysql错误!ERRORorg.hibernate.util.JDBCExceptionReporter-YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQ

java - 如何将多个字段分配为实体的主键(使用 JPA)

这个问题在这里已经有了答案:JPAcompositeprimarykey[duplicate](2个答案)关闭9年前。可以通过在JPA中使用@Id批注为其类分配主键。我的问题是,如果一个人不想在他的表中有一个自动生成的键并使用字段(可能不止一个)作为主键怎么办。假设我们有一个包含SSN、NATIONALITY和NAME的人员表。SSN被定义为一个人在他的国家被识别的号码。因此,我们可能在两个不同的国家有两个号码相同的人。该表的主键可以是SSN+NATIONALITY。有什么方法可以使用JPA映射这两个字段并将其映射到对象吗?或者它创建自动生成的id并使用@Id注释的唯一方法CREATE

java - @ManyToMany 三个表之间的关系

我的SpringJPA应用程序中有三个独立的实体-用户、部门、角色我的数据库中有一个连接表来关联这些实体中的每一个:USER_DEPARTMENT_ROLE我的问题是,如何在我的实体类中定义这种关系?我是否必须在每个单独的实体中定义一个@ManyToMany关系?我知道如何定义两个表之间的这种关系,但对于两个以上的表,我不确定从哪里开始。感谢任何帮助! 最佳答案 如果您在连接表中映射了两个以上的关系,那么我建议创建一个单独的实体,用于映射该特定表。问题是您是否可以有一个不同的id列作为人工主键,或者您必须坚持使用三个外键构建的复合主

java - 如何计算通用 JPA DAO 中 JPA 2 CriteriaQuery 的行数?

我是JPA的新手,想实现一个通用的JPADAO,需要找到查询结果集的行数以实现分页。在网上搜索后,我找不到实用的方法来做到这一点。这是许多文章中建议的代码:publicLongfindCountByCriteria(CriteriaQuerycriteria){CriteriaBuilderbuilder=em.getCriteriaBuilder();CriteriaQuerycountCriteria=builder.createQuery(Long.class);RootentityRoot=countCriteria.from(criteria.getResultType())

java - 我应该如何在 JavaDB 中存储 Java 枚举?

我应该如何在JavaDB中存储Java枚举?我是否应该尝试将枚举映射到SMALLINT并仅将值保留在源代码中?嵌入式数据库仅供单个应用程序使用。或者我应该将值存储为DECIMAL?这些解决方案都不适合我。有没有更好的选择?这是我的枚举:importjava.math.BigDecimal;publicenumVat{NORMAL(newBigDecimal("0.25")),FOOD(newBigDecimal("0.12")),BOOKS(newBigDecimal("0.06")),NONE(newBigDecimal("0.00"));privatefinalBigDecimal

java - Hibernate 在不引用其他表的情况下持久化 Map<String, String>

你能帮我用Hibernate持久化字符串映射吗?map值来自客户端并且是随机的,所以我不想为map值存储单独的表异常Causedby:org.hibernate.AnnotationException:Associatedclassnotfound:java.lang.String代码@EntitypublicclassUserConfig{@Id@SequenceGenerator(sequenceName="CONFIG_SEQ",name="ConfigSeq",allocationSize=1)@GeneratedValue(strategy=GenerationType.SE

Java JPA @OneToMany 需要返回@ManyToOne?

CreateTableA(IDvarchar(8),PrimaryKey(ID));CreateTableB(IDvarchar(8),A_IDvarchar(8),PrimaryKey(ID),ForeignKey(A_ID)ReferencesA(ID));鉴于我已经使用上面的SQL语句创建了两个表,并且我想为它们创建Entity类,对于类B,我有这些成员属性:@Id@Column(name="ID",nullable=false,length=8)privateStringid;@JoinColumn(name="A_ID",referencedColumnName="ID",n

java - Hibernate 和 JPA,用什么,用在哪里?

有人可以向我解释一下JPA和Hibernate之间的主要区别是什么吗?在哪里使用Hibernate?在哪里使用JPA?为什么不是实体bean? 最佳答案 一点历史:实体bean是EJB1和2的一部分。它们很难使用,因此需要一个替代方案。然后Hibernate出现了。(我不记得这些时间了)Hibernate发展成为对象关系映射中的事实上的标准。然后决定需要一个标准,因此创建了受Hibernate影响很大的JPA规范。JPA只是一个规范-它定义了ORM框架应该做什么,以及它应该支持哪些注释。JPA由许多供应商实现-Hibernate、E

java - 如果我修改一个 Hibernate 实体,在保存之后,当我提交时,更改将保存到数据库中

如果在Hibernate中,我执行以下步骤:打开session。创建一个新的hibernatePOJO对象(即要保存的对象),并填写值。现在我执行session.save()。现在我更改POJO对象-假设它是一个员工对象,然后我执行emp.setName("OtherName"),即更改对象中员工的姓名。现在我进行事务提交。我的问题是什么会被保存到数据库中——我执行session.save()之前的名称还是更改之后的名称,即“其他名称”? 最佳答案 在您保存实体的那一刻,它就变成托管状态,所有进一步的更改都会在Session.flu

java - 在 JPA 中使用保留的 JPQL 关键字

我有一个名为“Group”的实体类,NetBeans警告我“实体表名称是保留的JavaPersistenceQL关键字”。类似的情况是使用保留的SQL关键字。这个名字会被转义吗?使用不同的表名是否可以解决问题@Table(name="otherName")。还是我应该重命名类(class)? 最佳答案 Willthisnamebeescaped?JPA规范中没有这样说,如果您的提供者这样做,那是特定于提供者的。Wouldtheuseofadifferenttablenamesolvetheproblem@Table(name="ot