草庐IT

Hibernate-Session

全部标签

java - 如何使用注释处理 Hibernate 和 Spring 中的连接查询?

我正在使用Spring和Hibernate以及MySQL开发应用程序。我是Hibernate的新手并且完成了基本任务......现在我需要在选择查询中应用联接,以使用注释从多个表中获取数据。我已经搜索过了,但我仍然没有任何想法......这里是我的数据库表和bean类:Table1:'employee_info'(id,empid,empname,dojandjobtitle)Table2:'employee_login'(username,password,statusandempid)我的bean类是:EmployeeInfoForm.java@Entity()@Table(nam

java - hibernate :C3P0 属性被忽略

我收到以下警告:15:41:51,043WARN[org.hibernate.service.jdbc.connections.internal.ConnectionProviderInitiator](MSCservicethread1-1)HHH000022:c3p0propertieswereencountered,buttheorg.hibernate.service.jdbc.connections.internal.C3P0ConnectionProviderproviderclasswasnotfoundontheclasspath;thesepropertiesareg

java - 如果日期相同,为什么 assertEquals 为假? hibernate

我正在生成一个日期并通过hibernate保存在数据库中,当我获得该值时,我将其与插入之前的值进行比较。结果不相等!我创建的日期如下Daterightnow=Calendar.getInstance().getTime();Taskt1=newTask("Mytask",rightnow);taskDao.saveOrUpdate(t1);TasktaskR1=taskDao.get(t1.getIdTask());assertEquals("Theyshouldhavetobeequaldates",taskR1.getDate(),t1.getDate());我遇到了这个错误不同于

java - 如何使用 Hibernate 将 java.time.LocalDateTime 映射到 H2 数据库中的 TIMESTAMP?

我有一个基于Java8构建的项目。我有一个实体和java.time.LocalDateTimecreationDate属性。在数据库中,该列是TIMESTAMP以与Oracle保持一致。不幸的是,默认情况下H2数据库将LocalDateTime视为BINARY值。当查询被触发时,应用程序失败并在LocalDateTime属性和TIMESTAMP列之间进行转换。如何强制H2将LocalDateTime转换为TIMESTAMP列而不是BINARY?编辑:看起来这不是H2问题,而是来自Hibernate(v.5.0.12)。即使在这里:https://www.thoughts-on-java

Java 安全 session

无论何时进行身份验证,您的应用程序都应更改其使用的session标识符。这有助于防止某人设置session、复制session标识符,然后诱骗用户使用该session。因为攻击者已经知道session标识符,所以他们可以在用户登录后使用它来访问session,从而获得完全访问权限。这种攻击被称为“session固定”等。用户登录系统后如何更改sessionID? 最佳答案 使session无效时,您仍在服务器上。//getstuffoutofsessionyouwantbeforeinvalidatingit.currentSess

java - hibernate 子查询

我在使用Hibernate创建子查询时遇到了问题。不幸的是,Subqueries类几乎完全没有记录,所以我完全不知道如何将以下SQL转换为HibernateCriteria:SELECTidFROMcar_partsWHEREcar_idIN(SELECTidFROMcarsWHEREowner_id=123)我希望以下内容会“正常工作”:session.createCriteria(CarParts.class).add(eq("car.owner",myCarOwner));但不幸的是它没有。所以看来我实际上必须使用子查询类来创建条件。但是我无法通过谷歌找到一个合理的例子,所以这导

java - 集合内元素的 Hibernate 条件

我有一个实体包含一组另一个实体。Entity1包含SetentityTwos我想为entityTwos中的“id”字段创建搜索条件。我搜索过,但没有得到任何答案。有人有想法吗?谢谢,斯里 最佳答案 这很容易。像这样的东西:criteria.createAlias("entityTwos","entityTwo");criteria.add(Restrictions.eq("entityTwo.id",...)); 关于java-集合内元素的Hibernate条件,我们在StackOver

java - Hibernate Criteria 和行数限制

我有两个名为Parent和Child的实体,它们以一对多关系链接。Child实体有一个boolean值isStudent属性。我如何使用HibernateCriteriaAPI获取所有至少有一个具有isStudent=true子项的父实体?我试图使用一个Projection对象来计算所有至少有一个正确设置了属性的子项的父项,然后返回那些行数大于零的项,如以下代码(它不‘工作,虽然):Criteriacriteria=getCurrentSession().createCriteria(Parent.class);criteria.setProjection(Projections.al

java - Hibernate 二级缓存似乎不起作用

我目前正在尝试使用hibernate附带的缓存提供程序让hibernate工作。net.sf.ehcache.hibernate.SingletonEhCacheProvider我在我的hibernate.cfg.xml文件中引用的ecache.xml中启用了默认缓存和类特定缓存。类/映射文件特定缓存被定义为处理多达20000个对象。但是,自从我在我用来测试它的映射文件之一上打开缓存映射后,我没有看到任何性能提升。我的测试如下。加载特定映射文件im测试的10000个对象(这应该会影响数据库并成为瓶颈)。接下来我去加载相同的10000个对象,因为此时我希望缓存被命中并看到显着的性能提升。

java - Hibernate Session.save() 不返回值?

下面的代码抛出一个转换错误LongnewID=(Long)session.save(object);我是hibernate新手。不知道为什么。 最佳答案 session.save()的返回值取决于您的映射。很可能您的ID类型不是Long。尝试这样做:System.out.println(session.save(object).getClass().getName());然后您会看到类型名称。 关于java-HibernateSession.save()不返回值?,我们在StackOve