草庐IT

Hibernate-Session

全部标签

java - 使用 Hibernate/JPA 和 JDK Date 的不需要的自动时区转换

我使用Hibernate(4.2)作为我的持久性提供者,并且我有一个包含Date字段的JPA实体:@Entity@Table(name="MY_TABLE")publicclassMyTableimplementsSerializable{...@Temporal(TemporalType.TIMESTAMP)@Column(name="START_DATE")privateDatestartDate;publicDategetStartDate(){returnstartDate;}publicvoidsetStartDate(DatestartDate){this.startDat

java - PhantomJS 和 Selenium Webdriver - 如何清除 session

我正在使用SeleniumWebdriver(Java)和PhantomJS来测试一个复杂的JS驱动的网站。我的问题是,PhantomJS浏览器在两个测试之间保持session,这会导致测试设置出错。如果我使用Firefox运行测试,一切正常,因为Firefox为每个测试用例使用干净的session。我第一次尝试解决这个问题是通过JS注入(inject)清除本地存储。Cookie由Selenium公开的APIdriver.manage().deleteAllCookies();删除但是不允许在不访问页面的情况下执行JavaScript。因此以“about:blank”启动浏览器会导致错

java - 防止 Hibernate session 刷新/存储无效的脏实体

我想知道采取哪种方法来防止Hibernate4.3.4(使用Spring和HibernateVaidator)刷新脏实体。在我的代码中,我使用HibernateValidator的手动实现(实例本身中的.validate()方法),它在保存实体之前被调用。validate()方法返回错误列表(如果发现任何错误),否则调用Session.update()来存储实体,然后提交事务。这可行,但是当实例本身被操作时(在实体中设置发布/请求参数)实体和相应的Hibernatesession被标记为“脏”并且实体与下一个Session.flush()一起存储。在我的例子中,我想明确控制可能存储的实

java - 如何让 Hibernate Validator 在第一个字段违规时停止验证?

我有一个bean,我在其中为每个字段定义了多个验证注释,例如@NotEmpty@Pattern(regexp="(\\-?\\d)+")@Min(value=1)StringmyField;我遇到了两个一个我无法用任何简单方法解决的问题。每个字段的指定注释的验证顺序是随机的,即不会按照注释定义的顺序发生。我相信@GroupSequence不会有帮助,因为它只定义组验证序列,而不是注释序列。正如@Tom正确评论的那样,违规被报告为Set,这意味着注释的执行顺序与报告的违规之间没有1:1的映射。我只想使每个字段的一个规则无效,即如果它不匹配模式,请不要尝试检查该值是否>=1。目前,如果将m

java - @IdClass 使用 JPA 和 Hibernate 生成 'Identifier of an Instance was Altered'

对于使用不区分大小写的数据库模式的JPA实体模型,当我使用@IdClass注释时,我始终会收到“实例标识符已更改”异常。对于主键为'string'的对象,当数据库中存在一个大小写的字符串,并使用相同的字符串进行查询,仅大小写不同时,就会出现错误。我看过其他SO答案,它们的形式是:a)不要修改主键(我没有)和b)你的equals()/hashCode()实现有缺陷。对于“b”,我尝试使用toLowerCase()和equalsIgnoringCase()但无济于事。[此外,Hibernate代码似乎是直接设置属性,而不是在发生“改变”时调用属性setter。]具体错误如下:Causedb

java - 如何在 session 关闭后使用 hibernate 访问延迟加载的字段?

考虑这个场景:我已经通过hibernate加载了父实体Parent包含一个Children的集合,该集合很大且延迟加载当用户查看父数据时,初始加载后hibernatesession关闭用户可以选择查看lazyChildrenCollection的内容我现在想加载那个集合加载此集合的方式/最佳方式是什么?假设session-in-view不是一个选项,因为只有在用户查看了Parent并决定查看Children之后才会获取Children集合。这是一项可通过基于Web和桌面的客户端远程访问的服务。谢谢。 最佳答案 惰性集合可以使用Hib

java - Tomcat:将 session 存储在数据库中

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭4年前。Improvethisquestion我正在寻找一种方法来避免内存中session复制/集群并将session存储在数据库中。此时使用Tomcat的JDBCStore是没有用的,因为它只是将不活动的session存储在数据库中以节省服务器内存。有什么建议吗?预先感谢费边

java - 如何在运行时在 Drools DRL 中将事实添加到工作内存并在无状态 session 的执行结果中检索它们?

背景:我正在开发一个应用程序,它根据一组drools规则将输入对象转换为两个输出对象之一。输出对象直到运行时才为人所知,它是在要执行的第一个规则中创建的。这是创建输出对象的规则和示例转换规则:rule"Initialization"dialect"java"salience1000no-looptruewhent:Trade()thenif(t.getTran().getInsType().equalsIgnoreCase("EEO")||t.getTran().getInsType().equalsIgnoreCase("EEF")){insert(newOption());}els

java - 如何使用 JPA 和 Hibernate 映射 PostgreSQL 枚举

我正在尝试将名为transmission_result的PostgreSQL自定义类型映射到Hibernate/JPAPOJO。PostgreSQL自定义类型或多或少是一种enum类型的字符串值。我创建了一个名为PGEnumUserType的自定义EnumUserType以及一个代表PostgreSQL枚举值的enum类。当我针对真实数据库运行它时,我收到以下错误:'ERROR:column"status"isoftypetransmission_resultbutexpressionisoftypecharactervaryingHint:Youwillneedtorewriteor

java - Hibernate - 从单向 OneToMany 关系中获取集合的 HQL

我有一个具有单向一对多关系的类,如下所示:publicclassOrder{@OneToMany(cascade=CascadeType.ALL)@JoinTable(name="order_item",joinColumns={@JoinColumn(name="order_id")},inverseJoinColumns={@JoinColumn(name="item_id")})publicSetgetItems(){returnitems;}}通常获取此订单的内容很简单:Listitems=order.getItems();但无论出于何种原因,我可能想以某种方式过滤我的结果,并