草庐IT

QueryDSL-JPA

全部标签

java - JPA 中的 @Basic(optional = false) 与 @Column(nullable = false)

@Basic(optional=false)和@Column(nullable=false)在JPA持久化中有什么区别? 最佳答案 GordonYorke(EclipseLink架构委员会成员、TopLink核心技术主管、JPA2.0专家组成员)就这个话题写了一个很好的答案,所以我不会转述他,而是引用hisanswer:Thedifferencebetweenoptionalandnullableisthescopeatwhichtheyareevaluated.Thedefinitionof'optional'talksabout

java - 如何使用 JPA 将 Java 日期存储到 Mysql 日期时间

谁能告诉我如何将Java日期存储到Mysql日期时间...?当我尝试这样做时...仅存储日期,时间保持为00:00:00在这样的Mysql日期存储中......2009-09-2200:00:00我不仅想要日期,还想要时间......就像2009-09-2208:08:11我正在使用JPA(Hibernate)和springmydomain类使用java.util.Date但我使用手写查询创建了表...这是我的创建声明CREATETABLEContactUs(idBIGINTAUTO_INCREMENT,userNameVARCHAR(30),emailVARCHAR(50),subj

java - JPA - 在persist()之后返回自动生成的ID

我正在使用JPA(EclipseLink)和Spring。假设我有一个带有自动生成ID的简单实体:@EntitypublicclassABCimplementsSerializable{@Id@GeneratedValue(strategy=GenerationType.IDENTITY)privateintid;//...}在我的DAO类中,我有一个在此实体上调用persist()的插入方法。我希望该方法返回为新实体生成的ID,但是当我测试它时,它会返回0。publicclassABCDao{@PersistenceContextEntityManagerem;@Transactio

java - 何时将 EntityManager.find() 与 EntityManager.getReference() 与 JPA 一起使用

我遇到了一种情况(我认为这很奇怪,但可能很正常),我使用EntityManager.getReference(LObj.getClass(),LObj.getId())来获取数据库实体,然后通过返回的对象被持久化到另一个表中。所以基本上流程是这样的:classTFacade{createT(FObj,AObj){TTObj=newT();TObj.setF(FObj);TObj.setA(AObj);...EntityManager.persist(TObj);...LLObj=A.getL();FObj.setL(LObj);FFacade.editF(FObj);}}@Transa

java - 如何使用 JPA 注释注释 MYSQL 自动增量字段

直截了当,问题是将对象运算符保存到MySQL数据库中。在保存之前,我尝试从该表中进行选择,它可以正常工作,与db的连接也是如此。这是我的Operator对象:@EntitypublicclassOperator{@Id@GeneratedValueprivateLongid;privateStringusername;privateStringpassword;privateIntegeractive;//Gettersandsetters...}为了保存,我使用JPAEntityManager的persist方法。这是一些日志:Hibernate:insertintoOperator

java - 如何使用 JPA 和 Hibernate 映射计算的属性

我的Javabean有一个childCount属性。此属性未映射到数据库列。相反,它应该由数据库使用COUNT()函数计算,该函数在我的Javabean及其子项的连接上运行。如果这个属性可以按需/“惰性”计算会更好,但这不是强制性的。在最坏的情况下,我可以使用HQL或CriteriaAPI设置此bean的属性,但我不希望这样做。Hibernate@Formula注释可能会有所帮助,但我几乎找不到任何文档。非常感谢任何帮助。谢谢。 最佳答案 JPA不提供对派生属性的任何支持,因此您必须使用提供者特定的扩展。正如您所提到的,@Formu

java - Spring Data JPA 有没有办法使用方法名称解析来计算实体?

SpringDataJPA支持使用规范计算实体。但是它有没有办法使用方法名称解析来计算实体?假设我想要一个方法countByName来计算具有特定名称的实体,就像一个方法findByName来获取具有特定名称的所有实体。 最佳答案 从SpringData1.7.1.RELEASE开始,您可以通过两种不同的方式来实现,新方法,对计数和删除查询都使用查询派生。阅读this,(例5)。例如,publicinterfaceUserRepositoryextendsCrudRepository{longcountByName(Stringna

java - 如何在 JPA 中创建和处理复合主键

我想拥有来自同一数据条目的版本。换句话说,我想用另一个版本号复制条目。id-Version将是主键。实体应该是什么样子?如何将其复制到另一个版本?idVersionColumnA10Somedata11SomeOtherdata20Data2.Entry21Data 最佳答案 您可以创建一个Embedded类,其中包含您的两个键,然后在您的Entity中将该类的引用作为EmbeddedId.您需要@EmbeddedId和@Embeddable注释。@EntitypublicclassYourEntity{@EmbeddedIdpri

java - Spring JPA 选择特定列

我正在使用SpringJPA来执行所有数据库操作。但是我不知道如何从SpringJPA中的表中选择特定列?例如:SELECTprojectId,projectNameFROMprojects 最佳答案 您可以使用SpringDataJPA(doc)中的预测.在您的情况下,创建界面:interfaceProjectIdAndName{StringgetId();StringgetName();}并将以下方法添加到您的存储库中ListfindAll(); 关于java-SpringJPA选择

Java 持久性/JPA : @Column vs @Basic

JPA中的@Column和@Basic注释有什么区别?它们可以一起使用吗?应该它们一起使用吗?或者其中一个就足够了? 最佳答案 @Basic表示要保留属性并使用标准映射。它具有允许您指定属性是否要延迟加载以及是否可以为空的参数。@Column允许您指定数据库中要保存属性的列的名称。如果您指定一个而没有另一个,那么您会得到合理的默认行为,因此除了特殊情况外,人们通常只使用一个。因此,如果我们想要延迟加载属性并指定列名,我们可以说@Basic(fetch=FetchType.LAZY)@Column(name="WIBBLE")如果我们