草庐IT

java - 在 JPA Criteria API 查询中使用 countDistinct 的示例

我无法弄清楚如何表示以下JPQL查询:SELECTcount(e)FROMFooe使用标准API。我正在尝试的是:CriteriaBuildercb=em.getCriteriaBuilder();CriteriaQueryc=cb.createQuery(Foo.class);Rootf=c.from(Foo.class);c.select(cb.count(f));但这行不通。我也试过:c.select(cb.count(f.get("id"));这是针对JPA2、Eclipselink的。 最佳答案 试试这个,这是与hiber

java - Entity-Bean (JPA) 中的单向关系

如何在EJB3.0Entity-Beans(JPA)中创建单向关系?例如,客户知道订单,但订单没有客户的任何方法。使用(@OneToMany或@OneToOne或@ManyToMany)问候 最佳答案 下面是使用JPA2.0建立单向@OneToMany关系的方法:@EntitypublicclassCustomer{@Id@Column(name="cust_id")privatelongid;...@OneToMany@JoinColumn(name="owner_id",referencedColumnName="cust_id

java - JPA 类格式错误 "Absent Code attribute in method that is not native or abstract in class file javax/persistence/Persistence"

当我尝试调用100%工作代码时,我从eclipse中得到错误。例如,它在我的netbeans中工作,但不是这个eclipse项目。这个错误是荒谬的,我几乎可以肯定它是由我正在使用的OPENJPA的一些Maven依赖性引起的。任何指针?Mapproperties=newHashMap();properties.put(PersistenceUnitProperties.JDBC_PASSWORD,"");properties.put(PersistenceUnitProperties.JDBC_USER,"root");properties.put(PersistenceUnitProp

java - JPA/Spring/Delete Entity,类型不匹配(int/long for id)

我有一个使用的实体@Id@GeneratedValue(strategy=GenerationType.AUTO)privatelongid;我有这个实体的JPA存储库。现在我想删除其中一个,但标准方法是delete(inti),它不起作用,因为我的ID不是整数,而是长整数。那么除了使用int作为我的ID之外,在这里还能做什么?我可以指定一个使用long的自定义删除方法,就像它与findbyXX(XX)一起使用一样吗?编辑:首先:是的,我正在使用DataJPA!我想这样做:jparepository.delete(id);如果id是一个整数:org.hibernate.TypeMism

java - Spring JPA 存储库 : prevent update on save

我的user数据库表如下所示:CREATETABLEuser(usernameVARCHAR(32)PRIMARYKEY,first_nameVARCHAR(256)NOTNULL,last_nameVARCHAR(256)NOTNULL,passwordVARCHAR(32)NOTNULL,enabledBOOL)ENGINE=InnoDB;这是我的实体的字段定义:@EntitypublicclassUserimplementsSerializable{privatestaticfinallongserialVersionUID=1L;@Id@Column(nullable=fals

java - Spring 启动 Jpa : hibernate as default?

如果使用spring-boot-starter-data-jpa依赖项并通过org.springframework.data.jpa.repository.JpaRepository扩展存储库类,这是'普通jpa'还是hibernate?有什么区别? 最佳答案 JPA是接口(interface),Hibernate是实现。默认情况下,Spring使用Hibernate作为默认的JPA供应商。如果您愿意,可以使用任何其他引用实现,例如用于Spring项目中Java持久性的EclipseLink。

java - Spring Data JPA 存储库 : IN-clause in derived query not working

我有一个看起来像这样的存储库:publicinterfaceUserRepositoryextendsJpaRepository{UserfindByEmailIgnoreCase(Stringemail);@Query("selectufromUseruwhereu.idin(:ids)")SetgetByIdInSet(@Param("ids")Setids);}当我调用getByIdInSet时,出现以下错误:Causedby:java.lang.IllegalArgumentException:Youhaveattemptedtosetavalueoftypeclassorg.

java - JPA 从具有多对多关联的集合中选择

我有2个具有多对多关联的实体类。调制解调器:@Entity@Table(name="MOD_PM")publicclassModPmextendsWebPageObjectimplementsSerializable,IDBNamedEntity{privatestaticfinallongserialVersionUID=1L;publicfinalstaticStringQ_GET_WITHOUT_STATUS_FOR_SCOPE="ModPm.getWithoutStatusForScope";@Idprivatelongid;....@ManyToMany@JoinTable(

java - Spring JPA - 枚举中枚举字段的默认值

我们有一个带有枚举字段的实体-emailCommunicationStatus,我们想使用JPA注释为其设置一个默认值-'UNKNOWN'。但是,当我们将实体保存到数据库时,该字段的值为null而不是.对于boolean字段-isLocked,保存了正确的默认值(false)。@EntitypublicclassAccount{@Id@GeneratedValue@Column(name="id")protectedLongid;@Column(columnDefinition="booleandefaultfalse")privatebooleanisLocked;@Column(l

java - 如何防止使用 JPA 保存子对象?

我在学校和学生实体之间建立了OneToMany关系。我想要做的是当我保存学校对象时不要保存或更新学生对象。(当然不要删除它们)当我尝试像下面这样保存学校对象时,它也会更新我的学生对象,但我不希望它们被更新,而只是可连接。有什么办法吗?我删除了Cascade但它仍然无法正常工作。Schoolschool=newSchool();school.setStudents(studentList);repository.save(school);我的实体;@OneToMany(fetch=FetchType.EAGER)@JoinTable(name="school_student",joinC