草庐IT

hibernate3

全部标签

java - Hibernate session 线程安全

我知道session不是线程安全的。我的第一个问题:将一个实体传递给另一个线程是否安全,对其进行一些处理,然后将其传递回原始线程并进行更新。publicclassExample1{MyDaodao;...publicvoiddoWork(){MyEntityentity=dao.getEntity();Runnablejob=newJob(entity);Threadt=newThread(job);t.run();t.join();dao.merge(entity);}}我的第二个问题:在一个线程中新建实体并将其保存在另一个线程中是否安全?publicclassExample2{My

java - 如何在 hibernate.cfg.xml 中配置物理命名策略?

我正在学习Java和Hibernate。现在,我无法理解如何使用自定义物理命名策略:虽然PhysicalNamingStrategy对象确实已实例化,但toPhysicalTableName或toPhysicalColumnName方法永远不会被调用——至少我用调试器看不到。版本:Java1.8,Hibernate5.2.10.Final,macOS10.12。这是一个最小的项目:@EntitypublicclassCake{@Idprivatelongid;privateStringname;privateStringFLAVOUR;privateintsErViNg;publicC

java - 在 Hibernate 中使用 SEQUENCE 时导致违反唯一约束的原因是什么?

我正在使用下面的代码为id字段生成唯一的ID。直到上周它都运行良好。我使用Hibernate接口(interface)删除了一些实体,然后当我尝试插入新记录时它开始给出唯一约束违反异常。可能是什么导致了这个问题?@SequenceGenerator(name="ParamGenerator",sequenceName="ParamSequence",allocationSize=1)publicclassParamextendsIdNameEntity{privatestaticfinallongserialVersionUID=1L;@Id@GeneratedValue(strate

java - 如何知道是什么让 hibernate 持久化对象变脏了?

我用hibernate映射的对象有奇怪的行为。为了知道对象行为异常的原因,我需要知道是什么使该对象变脏。有人可以帮忙给我提示吗?该对象是Java/Spring上下文中的Java类。所以我更喜欢针对Java平台的答案。编辑:我想获得对Hibernate脏状态的访问权限,以及它如何在附加到session的对象上发生变化。我不知道一段代码会有什么帮助。至于实际问题:在由SpringTransactionManager管理的事务中,我对对象进行了一些(读取)查询,但没有对这些对象进行显式保存,它们由TransactionManager保存,因为Hibernate认为其中一些(和并非所有)都很脏

java - 从数据库中选择 MappedSuperclass (Hibernate)

问题我有一个名为Data的@MappedSuperclass作为我数据库中每个实体的父级。它包含Id等公共(public)属性。然后我有一个扩展Data的实体,由于其子类的公共(public)功能,它也是一个@MappedSuperclass。我的数据库中的映射是正确的。这是我的层次结构的例子@MappedSuperclassData|@MappedSuperclass+-Employee||@Entity|+-FullTimeEmployee||@Entity|+-PartTimeEmployee|@Entity+-StoreAndthetablesarecorrectlymappe

java - 使用hibernate创建新表时如何维护列顺序?

这个问题在这里已经有了答案:Wrongorderingingeneratedtableinjpa(6个答案)关闭3年前。这是我注释为实体的pojo@Entity@Table(name="book",catalog="book_db")publicclassBook{privateIntegerbookId;privateStringbookName;privateStringbookShortDesc;privateStringbookDesc;privateStringbookAuthor;}@Id@GeneratedValue(strategy=IDENTITY)@Column(n

java - Hibernate OnetoMany,ManyToOne 映射给空

我有两个名为PurchaseList.java和PurchaseListItems.java的类我必须在PurchaseListItems中映射PurchaseList采购list.java@OneToMany(cascade=CascadeType.ALL)@JoinColumn(name="pl_id",referencedColumnName="id")privateListpurchaseListItems;PurchaseListItems.java@ManyToOne@JoinColumn(name="pl_id")privatePurchaseListpurchaseLi

java - Hibernate:惰性初始化与损坏的哈希码/等于难题

我是JPA和Hibernate的新手(虽然我正在努力学习!)并且我正在努力解决一个我似乎无法找到简单解决方案的问题,所以就在这里。我有一个看起来像下面这样的实体:@Entity@Table(name="mytable1")publicclassEntityOne{//surrogatekey,databasegenerated@Id@GeneratedValue(strategy=GenerationType.IDENTITY)@Column(name="id")privateLongid;//businesskey@Column(name="identifier",nullable=

java - 如何使用 log4j2.xml 配置 hibernate 日志记录?

我最近切换到Apachelog4j2,但仍然找不到使用log4j2.xml配置hibernate日志记录的方法。因为我找不到解决这个问题的方法,所以我仍然明确地为hibernate使用log4j.properties文件。这不是最佳解决方案,因为我的log4j2.xml使用JPA附加程序(将日志写入数据库)。我不想为hibernate编写单独的逻辑。有没有办法使用log4j2配置hibernate日志记录? 最佳答案 如建议https://issues.apache.org/jira/browse/LOG4J2-172您可以添加系统

java - 如何避免两个不同的线程从数据库中读取相同的行(Hibernate 和 Oracle 10g)

假设我有两个不同的线程,T1和T2,同时访问同一个数据库并从同一个表中获取数据。现在在线程启动时,我需要从表中获取数据并将行存储到一个集合中,然后我将使用它在其他地方执行一些工作。我不希望两个线程能够处理相同的数据,因为这会导致重复(和长时间)的工作。更具体地说,这是一个企业应用程序,需要在启动时加载一些记录并将其存储在一个集合中以执行一些额外的工作。问题在于,在集群环境中,这可能会导致两个不同的实例加载相同的数据,因此可能会重复工作。所以我希望行仅由单个实例加载一次。我怎样才能避免这种情况?我目前正在使用Hibernate和Oracle10g。这些是我到目前为止的解决方案:以编程方式