草庐IT

hibernate-tools

全部标签

java - 具有延迟加载业务标识符的 Hibernate/JPA equals() 和 hashCode()

我想知道如何为Hibernate实体编写正确的equals()和hashCode(),这些实体与作为业务key很重要的另一个实体具有延迟加载的ManyToOne关系。请注意,我已经阅读了theHibernatedocumentationonthistopic我知道我必须/不应该使用对象ID。为了澄清,这里有一个例子:publicclassBusinessEntityimplementsSerializable{//forsimplicity,herejusttheimportantpartprivateStrings;@ManyToOne(fetch=FetchType.LAZY)pr

java - EhCache + hibernate

我有以下问题:我有一个返回35个结果的查询,我想保留在二级缓存中:publicListgetAllProducts(){Sessionsession=this.sessionfactory.getCurrentSession();StringqueryString="fromcom.ewave.upromotions.objects.Productproductwhereproduct.active=:active";Queryquery=session.createQuery(queryString);query.setBoolean("active",true);query.set

java - Hibernate - 对具有枚举属性的 Bean 使用 native 查询和别名?

我在hibernate中使用native查询来为包含枚举属性的bean起别名时遇到问题。调用query.list()时出现InvocationTargetException。我的例子如下:@Entity(name="table1")publicclassClass1{@Column(name="col1")@NotNullprivateIntegerprop1;@Column(name="col2")@NotNullprivateStringprop2;@Column(name="col3",length=6)@Enumerated(value=EnumType.STRING)priv

java - 获取 Javassist 类型而不是实际的 Hibernate 实体类型

我偶然发现了一个非常烦人的情况:我使用Hibernate和Spring作为我的应用程序的后端,似乎在某些情况下,与特定实体有关系的实体不会作为普通实体对象从数据库,但作为Javassist类型。例如:我的Campaign实体具有以下关系:@Entity@Table(name="campaign")publicclassCampaignimplementsSerializable{[..]@ManyToMany(fetch=FetchType.LAZY)@JoinTable(uniqueConstraints=@UniqueConstraint(columnNames={"campaig

java - hibernate 性能问题,坚持一个接一个还是批量?

我有一个约6GB的文本文件,我需要对其进行解析并稍后保存。通过“解析”,我从文件中读取一行(通常为2000个字符),从该行创建一个Car-object,然后我坚持它。我正在使用生产者消费者模式来解析和持久化,我想知道一次持久化一个对象(出于性能原因)或在一次提交中持久化1000个(或任何其他数量)对象是否有任何区别?目前,我需要>2小时来持久化所有内容(300万行),这对我来说看起来时间太多了(或者我可能是错的)。目前我正在这样做:publicvoidpersistCar(Carcar)throwsException{try{carDAO.beginTransaction();//ge

java - Hibernate saveOrUpdate 方法会删除 child 吗?

我有一个应用程序通过hibernate加载对象,然后将这些对象作为分离对象传递到另一层。对这些对象所做的任何更改都会向下发送回hibernate层,在hibernate层中我会在这些对象上调用saveOrUpdate()。如果我在调用之前简单地从集合中删除子对象,hibernate是否会删除传递给saveOrUpdate()的对象中包含在集合中的一对多关系子对象保存或更新()?如果不是,那么这通常如何在使用分离对象的hibernate应用程序中完成? 最佳答案 Willhibernatedeleteone-to-manyrelati

java - Hibernate:将 boolean 映射更改为 's'/'n'?

我目前正在尝试让Hibernate与Oracle8Legacy-Database一起工作。到目前为止一切正常,但现在我遇到了一个尚未解决的问题:数据库中的boolean值不以'y'/'n'或't'/'f'或0/1格式保存,但因为项目来自西类牙语区域,所以它被保存为's'/'n'表示si/no。但是,Hibernate显然不支持这一点。有什么想法吗?我会感谢在正确方向上的每一个小指针。例如,哪个类执行boolean映射,所以我可以覆盖它/创建我自己的版本?提前致谢。 最佳答案 据我所知,您必须使用自己的Dialect类,扩展您当前使用

java - 方法 Hibernate.createBlob() 已从 Hibernate 4.0.1 弃用并移至 Hibernate.getLobCreator(Session session).createBlob()

方法Hibernate.createBlob()已从Hibernate4.0.1中弃用并移至Hibernate.getLobCreator(Sessionsession).createBlob()。我应该在方法getLobCreator(Sessionsession)中传递什么的任何解决方案,即代替Session,或显示如何使用Spring和Hibernate检索图像并将图像保存到DB中的任何其他解决方案。 最佳答案 根据thiseasytutorial,SessionObjectASessionisusedtogetaphysic

java - 为什么我得到 org.hibernate.HibernateException : IOException occurred reading a binary value

我在我的日志中发现了这个我以前从未见过的异常​​,我使用的是Hibernate4.1.7这是否表明我的数据库已损坏,或者这是Hibernate中的错误。我在http://lists.jboss.org/pipermail/hibernate-issues/2010-November/026487.html找到了对此错误的引用但这指的是更早版本的hibernate并且已针对Hibernate4.0修复org.hiorg.hibernate.HibernateException:IOExceptionoccurredreadingabinaryvalueatorg.hibernate.ty

java - 无法通过反射 hibernate 获取字段值

我在jpa中更新对象时遇到问题我有bean用户publicclassUser{@Id@GeneratedValue(strategy=GenerationType.IDENTITY)@Column(name="id",unique=true,nullable=false)privateLongid;@Column(name="name",nullable=false)privateStringname;@OneToMany(fetch=FetchType.EAGER)@JoinColumn(name="fk_program_rating")privateListratingList=n