草庐IT

java - 网络不可靠和低带宽的 Java ORM 策略

我正在寻找一个需要在不可靠网络中工作的系统的Hibernate。我们需要对一个中央数据库进行读写访问,但它可以通过非常不完整的wi-fi网络访问。此外,可能会出现无法完全关闭应用程序的断电情况,因此任何解决方案都必须具有持久缓存,能够经受住电源循环。最后,这是一个只有适度内存和磁盘空间的嵌入式系统,因此例如对数据库进行全面复制是不可行的策略。我对Hibernate二级缓存有基本的了解,我想知道是否可以使用Ehcache之类的东西来配置它来解决这个问题,但其主要目的似乎是性能而不是可用性,所以我不知道有什么陷阱。我也很愿意考虑涉及复制到本地数据库的其他策略。我宁愿自己不必做太多繁重的工作

java - 基于 JPA 注释生成 ERD(实体关系图)的工具

我正在使用ormlite编写java代码。我想知道是否可以从我的代码中的JPA注释生成ERD。基本上,我需要这个的反面:HowcanItransformEntity-BaseddiagramtoaJPAjavacode 最佳答案 IntelliJIDEA(旗舰版)为ER-Diagram生成器提供JPA。在Persistence工具窗口中,选择适当的节点。然后使用上下文菜单选择“ER图”。请注意,JPAfacet必须链接到模块并且UML插件应该处于Activity状态。 关于java-基于

java - 如何使用 Hibernate 的 addScalar() 方法返回枚举

我有:@Column(name="UserType",nullable=false)@Enumerated(EnumType.STRING)privateUserTypeuserType;如何使用addScalar()方法通过SQL请求返回该字段? 最佳答案 这是将枚举添加到SQLQuery的方式您定义一个属性对象Propertiesparams=newProperties();params.put("enumClass","UserType");params.put("type","12");/*EnumType.STRINGty

java - 如何使用bulkUpdate批量删除

我有一个通用的用户/角色设置,带有一个user_role连接表。我正在尝试使用Spring的HibernateTemplate来批量删除所有锁定的用户,如下所示:getHibernateTemplate().bulkUpdate("deletefromUserwherelocked=?",true);如果被删除的用户没有任何角色(user_role表中没有记录),那么一切正常;但是,如果用户确实有角色记录,我会收到以下错误:integrityconstraintviolated-childrecordfound角色在User.java中定义如下:@ManyToMany(fetch=Fe

java - 在 Hibernate 中保存实体后更新 OneToMany 列表

我有关系://InA.javaclass@OneToMany(mappedBy="a",fetch=FetchType.LAZY)@Cascade(CascadeType.SAVE_UPDATE)privateListbList;//InB.javaclass@ManyToOne(fetch=FetchType.LAZY)@JoinColumn(name="id_a")@Cascade(CascadeType.SAVE_UPDATE)privateAa;现在看这个:Aa=newA();//settingABb=newB();//settingBb.setA(a);session.sav

java - 对于 java 开发者来说,有什么比 Hibernate 更好的呢?

关闭。这个问题是opinion-based.它目前不接受答案。想改善这个问题吗?更新问题,以便可以通过editingthispost用事实和引文回答问题.8年前关闭。Improvethisquestion我不确定是否有更好的方法来用Java开发数据库支持的应用程序,但我想我会问。Hibernate有很多我喜欢的地方,但也有很多问题。当你有和我一样多的经验时,它们中的大多数都不是什么大问题,但我认为我遇到的最大问题是一种适合所有延迟加载模型的问题。绝对讨厌它-那里必须有更好的东西......不是吗?我讨厌延迟加载模型的原因是,虽然在配置文件中指定什么是延迟和不延迟很方便,但应用程序的许多

java - 如何使用 Hibernate 获取关联的实体

我正在使用Springrest和Hibernate开发一个应用程序,我想从数据库中获取嵌套记录,就像我正在获取User的Profession,现在我想获取与我之前获取的Profession关联的Users。这是我的Dao类@SuppressWarnings({"unchecked","rawtypes"})publicListgetProfessionById(longid)throwsException{session=sessionFactory.openSession();Criteriacr=session.createCriteria(Profession.class);cr

java - 创建名称为 'org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration' 的 bean 时出错

我已经在Eclipse中创建了一个Spring/Maven项目。然后我把它放在svn下的服务器上。然后我使用import>mavenproject等再次将它导入Eclipse。我当前的App.java应用程序包含以下代码:packagecom.mycomany.app;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.EnableAutoConfiguration;importorg.springframework.boot.autoconfigur

java - 将带有 subselect in select 的 SQL 转换为 HQL

我有以下SQL在转换为HQL时遇到问题。NPE被抛出——我认为这与SUM函数有关。另外,我想对子选择别名进行排序——这可能吗?SQL(子查询):SELECTq.title,q.author_id,(SELECTIFNULL(SUM(IF(vote_up=true,1,-1)),0)FROMvoteWHEREquestion_id=q.id)ASvotecountFROMquestionqORDERBYvotecountDESCHQL(不工作)SELECTq,(SELECTCOALESCE(SUM(IF(v.voteUp=true,1,-1)),0)FROMVotevWHEREv.que

java - 为什么使用 Hibernate 和 Oracle 10g 方言通过 JPA 创建名为 hibernate_sequence 的序列?

我所有的实体都使用这种类型的@Id@Id@GeneratedValue(strategy=GenerationType.SEQUENCE,generator="MYENTITY_SEQ")@SequenceGenerator(name="MYENTITY_SEQ",sequenceName="MYENTITY_SEQ")@Column(name="MYENTITY",nullable=false)privateLongid;或@Id@Column(name="MYENTITY")我发现总是创建一个名为hibernate_sequence的Oracle序列。为什么会这样?我该如何避免这种