Tag: persistence

主键类型:int vs long

我知道有些软件商店已经通过使用int类型作为持久化类的主键而被烧毁。 话虽这么说,并非所有的表都增长了20亿。 事实上,大多数人没有。 那么,你们是否只为那些映射到潜在大表的类或者每个持久类只使用一致的类来使用long类型? 什么是行业共识? 我会暂时搁置这个问题,以便您与我们分享您的成功/恐怖故事。

Hibernate / JPA:是否可以在单个查询中检索异构实体?

我有2个实体:EntityA和EntityB。 它们是不相关的,我不能将它们放在inheritance树中,因为某些限制超出了本问题的范围。 但是我需要在同一个JPQL或HQL查询中获得包含两个实体的所有实例的混合List。 这可能是JPA甚至直接使用Hibernate吗? 我需要这样的东西: FROM EntityA WHERE fieldA=1 UNION FROM EntityB WHERE fieldB=”aa” 任何提示?

只读模式下不允许写操作 – 持久化时发出

尝试将对象保存到数据库时,我一直面临以下错误。 我试过这里提到的解决方案1和here2但没有好处。 我正在学习一个教程,但唯一的区别是Spring和Hibernate的版本。 我可以使用SessionFactory直接持久化对象,但如果我使用HibernateDaoSupport尝试此操作,它会失败并出现以下错误 spring.xml org.hibernate.dialect.OracleDialect update true CustomerDAOImpl.java public class CustomerDAOImpl extends HibernateDaoSupport { public boolean insertCustomer(Customer cust){ try { getHibernateTemplate().saveOrUpdate(cust); } catch (DataAccessException e) { e.printStackTrace(); return false; } return true; } } 使用它来调用它。 public class MainClass { public static void main(String[] args) { ApplicationContext appContext = new ClassPathXmlApplicationContext(“spring.xml”); CustomerDAOImpl hdi=appContext.getBean(“customerDAOImpl”,CustomerDAOImpl.class); Customer customer=new […]

JTA EntityManager无法使用getTransaction()

如何在我的非ejb应用程序中使用以下代码。 代码有效。 @Override public void saveItems(Collection items) { synchronized (em) { EntityTransaction tx = em.getTransaction(); try { tx.begin(); for (T item : items) { saveItem_((Class) null, item); } tx.commit(); } finally { if (tx.isActive()) { tx.rollback(); } } } } 在一个新的应用程序中,我正在使用EJB3 + JSF,并希望重用包含上述代码的库。 我对新应用程序的持久性单元如下所示: org.hibernate.ejb.HibernatePersistence MySQLConnection 我的新应用程序在遇到此行时抛出exception: EntityTransaction tx = em.getTransaction(); 例外是: A JTA EntityManager […]

持久化java对象最简单的方法是什么?

现在我有java程序,其类目前是POJO并存储在易失性存储器中。 这些都需要坚持下去。 据我所知,两个流行的选择是JDO和Java Persistence API。 对于那些对SQL,Torque等知之甚少的人来说,这是为程序数据添加持久性的最简单方法吗?

JAVA:multithreading环境中的EntityManager对象

如果我有多个线程,每个使用注入器来获取EntityManager对象,每个使用em对象来选择其他类对象的列表。 准备用于for循环。 如果一个线程先完成并调用clear(),那会影响其他线程吗? 喜欢for循环会有exception吗? close()怎么样? 如果答案是“它取决于”,那么(类定义?方法调用?)和where(java code?annotation?xml?)应该看看它是如何依赖的? 我没有写源,我只是在没有文档的情况下使用别人的库。 谢谢。

如何使用JDO持久性管理器?

关于如何创建/使用JDO持久性管理器(PM,以下简称),我有两个问题。 比如,在Java Web应用程序中,如果我有10个实体,可以在逻辑上分组为2个组(例如,5个用户相关实体和5个业务相关实体) 我是否需要两个不同的PM来管理这两个组,或者只有一个PM就足够了? 关于初始化,我应该使用PM的单例实例(所有用户在给定时间点使用应用程序共享)还是应该为每个会话创建PM?

JPA / Hibernate批量(批量)插入

这是我在阅读了几个关于jpa批量插入的主题后创建的简单示例,我有2个持久对象User和Site。 一个用户可以拥有多个站点,因此我们在这里有一对多的关系。 假设我想创建用户并创建/链接几个站点到用户帐户。 考虑到我愿意为Site对象使用批量插入,这是代码的样子。 User user = new User(“John Doe”); user.getSites().add(new Site(“google.com”, user)); user.getSites().add(new Site(“yahoo.com”, user)); EntityTransaction tx = entityManager.getTransaction(); tx.begin(); entityManager.persist(user); tx.commit(); 但是,当我运行此代码(我使用hibernate作为jpa实现提供程序)时,我看到以下sql输出: Hibernate: insert into User (id, name) values (null, ?) Hibernate: call identity() Hibernate: insert into Site (id, url, user_id) values (null, ?, ?) Hibernate: call identity() Hibernate: insert into Site (id, […]

在Java中生成全局唯一标识符

简介:我正在开发一个持久的Java Web应用程序,我需要确保我持有的所有资源都具有全局唯一标识符以防止重复。 精美印刷品: 我没有使用RDBMS,所以我没有任何花哨的序列生成器(例如Oracle提供的那个) 我希望它是快速的,最好是全部在内存中 – 我宁愿不必打开一个文件并增加一些值 它需要是线程安全的(我预计一次只需要一个JVM生成ID) 需要在JVM的实例化之间保持一致。 如果服务器关闭并启动,ID生成器不应该重新生成它在先前实例化中生成的相同ID(或者至少机会必须非常,非常小 – 我预计会有数百万个预先存储的资源) 我已经看到了EJB唯一ID模式文章中的示例。 它们不适用于我(我宁愿不仅仅依赖于System.currentTimeMillis(),因为我们将每毫秒保持多个资源)。 我看过这个问题中提出的答案。 我对它们的关注是,随着时间的推移,我将获得重复ID的可能性是多少? 我对使用java.util.UUID用于UUID的建议很感兴趣,但同样,重复的可能性必须极小。 我正在使用JDK6