Tag: 持久化

Java Persistence / JPA:@Column vs @Basic

JPA中的@Column和@Basic注释之间有什么区别? 他们可以一起使用吗? 他们应该一起使用吗? 还是其中一个足够?

从现有数据库生成JPA 2实体

我如何从现有的数据库生成符合JPA2的@实体? 我发现这个问题 还不清楚JBoss是否会生成兼容的JPA2,也想知道是否有独立于供应商的方式来执行此操作。

在模型类中使用javafx.beans属性

在模型类中使用JavaFX bean属性是否正确? 我想知道在模型类中使用属​​性是否能很好地将它们与视图组件绑定起来是一个好习惯。 我并不担心将来这些库的可用性,因为我的程序将在JRE8或更高版本上运行,但是在模型类中使用JavaFX库的性质使我感到怀疑,我特别担心当前和未来的不兼容问题,我想用Hibernate来坚持这些属性。 注意:我使用纯JavaFX环境,并且在我的应用程序中我永远不需要Swing兼容性。

在JPA / Hibernate中正确使用flush()

我正在收集有关flush()方法的信息,但是我不清楚何时使用它以及如何正确使用它。 从我读到的内容来看,我的理解是持久化上下文的内容将与数据库同步,即发出未完成的语句或刷新实体数据。 现在我有两个实体A和B (一对一的关系,但没有强制执行或由JPAbuild模)的以下情况。 A有一个手动设置的组合PK,还有一个自动生成的IDENTITY字段recordId 。 这个recordId应该写入实体B作为A一个外键。 我在一次交易中保存A和B 问题是自动生成的值A.recordId在事务中不可用,除非在A上调用em.persist()之后,明确调用em.flush() 。 (如果我有一个自动生成的IDENTITY PK,那么值直接在实体中更新,但这不是这种情况。) 在事务中使用em.flush()会造成什么危害?

我如何使用NSCoder快速编码枚举?

背景 我想使用NSCoding协议编码一个string样式的枚举,但我正在运行到转换为和返回从string的错误。 解码和编码时出现以下错误: string不能转换为舞台 额外的参数ForKey:在调用 码 enum Stage : String { case DisplayAll = "Display All" case HideQuarter = "Hide Quarter" case HideHalf = "Hide Half" case HideTwoThirds = "Hide Two Thirds" case HideAll = "Hide All" } class AppState : NSCoding, NSObject { var idx = 0 var stage = Stage.DisplayAll override init() {} […]

Java中的持久HttpURLConnection

我想写一个Java程序,将自动下载并命名我最喜欢的networking漫画。 由于我将要求从同一个域的多个对象,我想有一个持续的http连接,我可以保持开放,直到所有的漫画已经下载。 以下是我正在进行的工作。 如何在不打开新的http连接的情况下,从同一个域但不同path发出另一个请求? import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; public class ComicDownloader { public static void main(String[] args) { URL url = null; HttpURLConnection httpc = null; BufferedReader input = null; try { url = new URL("http://www.cad-comic.com/cad/archive/2002"); httpc = (HttpURLConnection) url.openConnection(); input = new BufferedReader(new InputStreamReader(httpc.getInputStream())); String inputLine; while ((inputLine […]

何时使用EntityManager.find()与EntityManager.getReference()

我遇到了一种情况(我认为这很奇怪,但可能很正常),我使用EntityManager.getReference(LObj.getClass(),LObj.getId())获取数据库实体,然后将返回的对象传递给坚持在另一张桌子上。 所以stream量基本上是这样的: class TFacade { createT(FObj,AObj){ T TObj = new T(); TObj.setF(FObj); TObj.setA(AObj); … EntityManager.persist(TObj); … L LObj = A.getL(); FObj.setL(LObj); FFacade.editF(FObj); } } @ TransactionAttributeType.REQUIRES_NEW class FFacade { editF(FObj){ L LObj = FObj.getL(); LObj = EntityManager.getReference(LObj.getClass(),LObj.getId()); … EntityManager.merge(FObj); … FLHFacade.create(FObj,LObj); } } @ TransactionAttributeType.REQUIRED FLHFacade类{ createFLH(FObj,LObj){ FLH FLHObj = new FLH(); FLHObj.setF(FObj); FLHObj.setL(LObj); …. […]

用hibernate.enable_lazy_load_no_trans解决Hibernate的Lazy-Init问题

我一直在遭受臭名昭着的hibernateexception org.hibernate.LazyInitializationException: could not initialize proxy – no Session 现在社区正在欢呼 <property name="hibernate.enable_lazy_load_no_trans" value="true"/> 说它解决了这个问题,但使用它注意 。 他们是什么意思,谨慎使用它? 这个属性实际上做了什么? 请给我任何见解。 提前致谢。