草庐IT

jpa-annotations

全部标签

java - 通过服务公开 JPA 实体

我们正在使用AngularJS、Rest、JPA开发Web应用程序。我已经阅读了一些关于域实体不应通过服务公开的文章。我知道这是紧密耦合,可能存在循环引用、关注点分离,这对我来说似乎是有效的。但后来我看到有关将jpa和jaxb映射应用于同一模型的文章,eclipseLinkmoxy就是一个例子。然后是SpringdataREST,它通过restapi公开jpa实体。(可能是SpringDataREST用于解决手头的不同问题)所以我有点困惑。回答以下2个问题和其中一个比另一个更好的场景会有所帮助。将jaxb和JPA注释应用到同一个领域模型有什么好处?这样做主要是为了避免中间出现DTO层?

java - 在没有 persistence.xml 或 orm.xml 的情况下使用 IntelliJ 生成 JPA 实体

有没有办法在没有persistence.xml文件的情况下使用IntelliJ生成JPA实体?或者基本上让IntelliJ从JavaConfig中识别一个持久性单元?我有一个现有的(遗留)模式,该项目是重写的,现在在SpringBoot中使用JavaConfig。根据SpringBoot文档,持久化单元将由代码创建:@BeanpublicLocalContainerEntityManagerFactoryBeancustomerEntityManagerFactory(EntityManagerFactoryBuilderbuilder){returnbuilder.dataSourc

java - 如何使用 spring boot 和 jpa 在数据库中上传和保存文件?

我是springboot的新手。我想使用springboot上传一个小文件并使用jpa将其保存在db中。但是我没有很好的分辨率。我的程序是这样的:数据库表:CREATETABLE`report`(`id`int(10)NOTNULLAUTO_INCREMENT,`name`varchar(255)NOTNULL,`logo`BLOBNOTNULL,`created_time`int(10)NOTNULL,`updated_time`int(10)NOTNULL)ENGINE=InnoDBAUTO_INCREMENT=13DEFAULTCHARSET=utf8jpabean:报表.jav

java - 在 spring boot JPA 中,如何正确地将实体表示具有外键关联的对象发布到不同的实体?

如果我有一个实体包含另一个类的对象,例如Book内部有一个Publisher的实体关联的实体如下:@ManyToOne@JoinColumn(name="PUB_CODE",referencedColumnName="PUB_CODE")privatePublisherpub;这是一种安全/正确的方法(我在这个例子中看到了数据库中的正确数据,但不能100%确定它是否适用于所有情况)方法来发布在数据库中具有外键关联的对象?我不知道这样做在事务原子性或线程方面是否安全,或者它是否有效。相关代码如下:Book.javapackageapp.domain;/*imports*/@Entityp

java - 从 JPA 2.1 升级到 JPA 2.2

我在升级到JPA2.2时遇到问题。我正在使用eclipselink并更改了我的pom中的版本:org.eclipse.persistenceeclipselink2.7.0我还更新了persistence.xml以指向正确版本的xsd:my.entity问题是我收到以下错误消息:Thepersistence.xmlfiledoesnothavesupportedcontentforthisJPAplatform.我已经查看了eclipselink文档,但没有发现任何问题。有什么想法吗? 最佳答案 从JPA2.0升级到2.1后,我遇到

java - JPA Criteria query eager fetch associated entities using a SINGLE query with join 而不是多个查询

在将hibernate从4.3.11升级到5.2.12的范围内,我们正在从Hibernatenative标准查询迁移到JPA标准查询,并发现了不同的行为。以前的hibernate条件使用带有连接的单个查询来急切地获取一对多关联实体,但JPA使用单独的查询来获取每个根实体的关联实体。我知道我可以像entityRoot.fetch("attributes",JoinType.INNER);那样显式设置获取模式,但我们需要在一些AbstractDao实现中完成它,它应该适用于任何急切的人-对多关联,因此不能显式设置。那么我能否以某种方式告诉JPA标准,以便在默认情况下使用连接而不是针对每个根

java - 如何使用 Spring Roo 和 JPA 提供我自己的 @id 字段

我正在尝试让SpringRoo使用我自己的@Id字段而不是生成一个字段。@Entity...@RooEntity@Table(name="usr")publicclassUser{@Id@GeneratedValue(strategy=GenerationType.AUTO)@Column(name="usr_id")privateIntegerid;...publicIntegergetId(){returnid;}publicvoidsetId(Integerid){this.id=id}...}Roo仍然在User_Roo_Entity.aj中创建以下内容:@Id@Generat

java - 使用@annotations 来标记监听器方法而不是带有方法的接口(interface)是个好主意吗?

首先是的——这是主观的。我最近注意到一些库似乎在某些类中使用让用户标记监听器方法作为监听器使用不同的注释来记录不同的事件。Infinispan和WELD就是这种方法的例子。我讨厌这种模式的地方没有类型安全需要阅读doco以找出事件的正确类型签名,而不仅仅是实现。对于实现者来说,这会非常困惑,因为他们需要更多的支持代码来发现和验证提交的监听器类、保留该方法并分派(dispatch)它等。反射分派(dispatch)的东西使触发事件变慢。当然,可以使用ASM生成一个真正的类,但与触发一个简单的listener.onEvent相比,这需要做更多的工作...可能的原因使细粒度的监听器成为可能。

java - 在现有 JPA 持久性类中处理更新的策略

我们正在做一个计划使用JPAPersistence的项目。我们认为,一旦项目上线,可能需要更改数据模型的可能性很小。我的问题是有哪些不同的策略可用于处理这种变化。特别是我有以下问题:对于更新的JPA类,将它们合并到现有数据库架构中的最佳实践是什么?对于JPA,是否有任何最佳实践来归档旧数据、更新数据库架构,然后再次将数据库迁移到新架构?有哪些变化(从广义上讲)会使这种迁移变得不可能? 最佳答案 在RHQ(http://rhq-project.org/)中,我们有一些dbutils,它们具有XML模式描述,用于填充空数据库上的初始模式

java - 我什么时候应该在 JPA 2.0 中使用 @Basic(optional = false)

我在JPA中有一个带有单表映射的继承,比如说A类和B类扩展了一些抽象实体,所以我必须使A和B中的列在数据库端可以为空,但是如果有人试图保留A,那么所有字段A不应该为空,我想通过代码强制执行。我可以使用以下代码来实现此目的吗-@Entity@DiscriminatorValue("1")publicClassAextendsSomeAbstractEntity{@Basic(optional=false)privateStringnameOfA;}我读了这个答案@Basic(optional=false)vs@Column(nullable=false)inJPA并认为这可能是可以实现的