computer-database-jpa
全部标签 我有一个遗留数据库,我正试图重新设计以适应21世纪。现有的数据结构之一涉及一个特定的类,它包含一个二维值矩阵。如果我要从数据库中对此类进行逆向工程,我最终会得到一系列属性,例如:privateBigDecimalNODE_1_MATRIX_POS_1_1;privateBigDecimalNODE_1_MATRIX_POS_1_2;等等。由于这是一个6x6矩阵,因此有很多这样的列。我一直在寻找更好的方法,但我不确定我在那里。我想做的是这样的:@EntitypublicclassTestClass{@Idprivatelongid;@CollectionOfElements@JoinTa
我继承了一个代码库,几乎所有关系都有以下注释:@OneToMany(fetch=FetchType.LAZY,cascade={CascadeType.REMOVE},mappedBy="someThing")@OnDelete(action=OnDeleteAction.CASCADE)现在我很难理解@OnDelete首先做了什么。Hibernate:OnDeletevscascade=CascadeType.REMOVE很有趣,但遗憾的是没有任何答案,@OnDelete的JavaDoc特别毫无值(value)。从其他问题来看,OnDelete注释似乎让DB以某种方式进行级联,而@O
我遇到了一个问题,JPA在我不想要的时候试图延迟加载我的数据。本质上发生的事情是我正在使用一个服务来检索一些数据,当我将该数据解析为JSON时,JSON库触发hibernate以尝试延迟加载数据。有什么办法可以阻止这种情况吗?我在下面给出了一个例子。//WebControllermethodpublicStringgetEmployeesByQuery(Stringquery){Gsongson=newGson();Listemployees=employeeService.findEmployeesByQuery(query);//Hereiswheretheproblemisocc
我面临着一个简单的问题,即通过实体可能包含的某些(子)字符串搜索实体。例如我有用户user1、usr2、useeeer3、user4,我将进入搜索窗口“use”,我希望返回user1、useeer3、user4。我相信你现在明白我的意思了。JPA(JQPL)中有构造吗?在命名查询中以某种方式使用WHERE进行搜索会很好。类似于“SELECTuFROMUseruWHEREu.nicknamecontains:substring” 最佳答案 使用LIKE表达式。以下是JPA1.0规范(JSR220)的4.6.9LikeExpressio
我使用Hibernate作为我的JPA提供者,我希望在调用save()时忽略实体中的字段之一。但是,我在相应的数据库表中确实有一个匹配列,并且我希望在获取实体时用数据库值填充我的实体字段。因此,我希望在保存实体时忽略该字段,但在获取实体时不忽略。如果我使用@Transient,该字段将被完全忽略,这不是我想要的。有什么办法吗? 最佳答案 来自优秀的书ProJPA2:JPAdefinesoptionstosetindividualmappingstoberead-onlyusingtheinsertableandupdatableel
我有一种情况,我可以发送JPA实体作为休息请求和/或获取JPA实体作为休息响应@RequestMapping(value="/products",method=RequestMethod.POST)public@ResponseBodyProductDetailsResponsecreateNewProduct(@RequestBodyProductDetailsnewProduct)throwsException{ProductDetails是一个实体@Entity@Table(name="product")publicclassProductDetails{我应该使用它,还是进行某
使用JPA实体的最佳实践是什么?由于JPA实体只是POJO,在系统的其他部分将该对象用作数据对象是否合适,还是我应该将它们转换为另一个数据对象?在系统的其他与JPA无关的部分使用JPA实体POJO是否可以接受? 最佳答案 实体现在自己能够传输自己的数据,那么为什么还要费心将它们转换成其他东西呢?也就是说,我倾向于同意《DTOanAntiPatterninEJB3.0》(原文链接目前下线):TheheavyweightnatureofEntityBeansinEJBspecificationspriortoEJB3.0,resulte
我有一个JPA/Hibernate数据模型,我正在使用Hibernatehbm2ddl工具生成数据库DDL。我有一些字符串应该是CHAR和一些可能是数据库中的VARCHAR。我想尽量减少对DDL的手动编辑(我意识到有些事情将不得不发生)。有人知道我应该怎么做吗?我意识到我可以通过黑客方言制作所有字符串VARCHARS或CHARS,但这并不总是适合数据库。我希望能够使用注释或aop来做到这一点,避免在我的类中使用自定义列定义文本。谢谢。 最佳答案 注释要映射到数据库中的CHAR的字符串@Column(columnDefinition=
我的jpa如下所示publicclassTESTClassimplementsSerializable{...privateStringname;@EmbeddedIdprotectedIssTESTPKissTESTPK;@ManyToOne(optional=false)@JoinColumns({@JoinColumn(name="DIVISION_CODE",referencedColumnName="DIVISION_CODE",nullable=false,insertable=false,updatable=false),@JoinColumn(name="SURVEY_
关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想先声明一下,我是一个正在寻求建议的新手,因为我正在努力养成良好的习惯。我现在正在开发的应用程序是一个高度集成的数据库应用程序。当我开发、探索和实现我的每个实体的需求时,我发现我的类只是用代码爆炸,以不同的方式对每个实体运行查询。虽然现在这可能不是一件坏事,但就维护而言,我预见我的应用程序将成为调试和更新的噩梦。是否有任何JDBC专家对设计模式有任何建议,以帮助减少用于处理所有这些查询的