草庐IT

Hibernate

全部标签

java - IN 不工作的 JPA EntityManager createQuery()

这是失败的:Listnames=newArrayList();names.add("sold");Queryquery=em.createQuery("FROMPropFieldpropFieldWHEREpropField.nameIN(?)");query.setParameter(1,names);Listfields=query.getResultList();这也是:Listnames=newArrayList();names.add("sold");Queryquery=em.createQuery("FROMPropFieldpropFieldWHEREpropField

java - 加入获取 : "query specified join fetching, but the owner of the fetched association was not present in the select list"

我有以下代码:publicclassValueDAOimplementsBusinessObject{privateLongid;privateStringcode;privateClassDAOclassDAO;....}publicListgetCodesByCodeClass(LongclassId){Stringselect="selectdistinctval.codefromValueDAOvalleft"+"joinfetchval.classDAO";Stringwhere="whereval.classDAO.id=?orderbyval.code";returnge

java - 如何设置 JPA EntityManager 查询的超时时间

我目前从我的EntityManager查询中收到连接超时错误。是否可以为这些设置超时?持久性.xmlorg.eclipse.persistence.jpa.PersistenceProvidercall.structure.Taskcall.structure.Installationcall.structure.Contentscall.structure.Recipientcall.structure.CallTaskcall.structure.SmsTaskcall.structure.EmailTaskcall.security.Usercall.structure.cont

java - 使用 JPA 进行更新时如何排除实体字段

有没有办法让字段在更新操作时非持久化,但在使用JPA-Hibernate4创建操作时持久化?我这样试过@Transient@Id@Column(name="USER_NAME",nullable=false,length=75)privateStringuserName;但是使用@Transient注释,该字段在所有CRUD操作中都是transient的,我想要一种方法来指定仅在此操作上是持久的(创建)。有办法吗?谢谢! 最佳答案 您需要将@Column注解的updatable属性设置为false:@Column(name="USE

java - hibernate h2 可嵌入列表预期为 "identifier"

我正在尝试在我的员工实体中关联一个函数列表(可嵌入),而H2似乎对这种期望“标识符”的说法不满意Causedby:org.h2.jdbc.JdbcSQLException:SyntaxerrorinSQLstatement"CREATETABLEEMPLOYEE_FUNCTIONS(EMPLOYEE_EMPLOYEEIDVARCHAR(255)NOTNULL,ACTIVEBOOLEANNOTNULL,DEPARTMENTNUMBERINTEGERNOTNULL,DESCRIPTIONVARCHAR(255),ORDER[*]INTEGERNOTNULL)";expected"ident

java - Hibernate 或 TopLink 的替代品?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭9年前。Improvethisquestion是否有Hibernate的可行替代方案?最好是不基于JPA的东西。我们的问题是我们正在构建一个复杂的(例如,许多对象相互引用)有状态的RIA系统。似乎Hibernate主要设计用于一次性应用程序-JSF等。主要是延迟加载的问题。由于在初始化和实际加载惰性集合之间可能有多个HTTP请求,因此每个事务一个session是不可能的。长期session(每个应用程序一个)也不能很好地工作,因为一旦

java - HQL如何查询String的ElementCollection

我有这样的课publicUser{Longid;Setroles;}如何查询角色为"ADMIN"的所有User对象编辑:我正在使用Hibernate3.0.5。并尝试了大多数显而易见的方法。来自Userswhererolesin('ADMIN')给出了JDBC错误。来自Usersuwhereu.rolesin('ADMIN')给出类转换异常我认为这可能是这个特定版本的hibernate的问题。 最佳答案 我找到了解决方案:"fromUserasuserwhere'ADMIN'inelements(user.roles)";hql函数

java - org.h2.jdbc.JdbcSQL异常 : Schema "MYAPP" not found; SQL statement

我正在尝试将H2数据库与sprintjunit测试一起使用,如下所示:1-SpringTestingConfig:@Configuration@ComponentScan(basePackages="com.myapp.data",excludeFilters={@Filter(Configuration.class)})@PropertySource("classpath:/test.properties")@Profile("test")publicclassSpringTestingConfig{@BeanpublicDataSourcedataSource(){DriverMa

java - 非托管线程 Spring Quartz Websphere Hibernate

看来我们使用Quartz-JDBCJobStore以及Spring、Hibernate和Websphere的实现正在抛出非托管线程。我读了一些书,发现了一篇来自IBM的技术文章,指出将Quartz与Spring一起使用会导致这种情况。他们建议使用CommnonJ来解决这个问题。我做了一些进一步的研究,到目前为止我看到的唯一例子都是处理不在数据库中的计划旧JobStore。所以,我想知道是否有人有解决此问题的示例。谢谢 最佳答案 我们有一个可行的解决方案(实际上有两个)。1)更改quartz源代码以将WorkManager守护线程用作

java - 对象关系映射的缺点

我是ORM的粉丝-对象关系映射,在过去一年半的时间里,我一直在将它与Rails结合使用。在此之前,我曾经使用JDBC编写原始查询,并通过存储过程让数据库完成繁重的工作。使用ORM,我最初很乐意做像coach.manager和manager.coaches这样非常简单易读的东西。但随着时间的推移,无数的关联逐渐增加,我最终做了a.b.c.d,它在幕后向各个方向发射查询。使用rails和ruby​​,垃圾收集器变得疯狂并花费疯狂的时间来加载涉及相对较少数据的非常复杂的页面。我不得不用一个简单的存储过程替换这个ORM样式代码,我看到的结果是巨大的。加载需要50秒的页面现在只需2秒。如此巨大的