Tag: hibernate

使用Hibernate Criteria和Oracle,有什么更好的方法与时间一起工作?

我想按时间选择实体。 我的Oracle DBMS的字段类型为DATE,其中包含日期和时间。 这是我的代码。 如何按时间标准选择数据? Calendar timeCal = new GregorianCalendar(0,0,0,0,0,0); Date timeMin = timeCal.getTime(); timeCal.add(Calendar.HOUR_OF_DAY, 1); Date timeMax = timeCal.getTime(); if (minDate != null && maxDate != null) criteria.add(Restrictions.between(“eventDate”, minDate, maxDate)); if (onDate != null) { Calendar calendar = Calendar.getInstance(); calendar.setTime(onDate); calendar.add(Calendar.DAY_OF_MONTH, 1); criteria.add(Restrictions.between(“eventDate”, onDate, calendar.getTime())); } if(minTime!=null&&maxTime!=null){ /* How to add Restriction on eventDate […]

java.lang.IllegalArgumentException:找不到命名查询。(实体管理器未创建NamedQuery)

我正在使用hibernate 4.1.5.Final和Spring 3.1.2 Release以及Jboss 7.1。 我已经使用@NamedQuery注释在类中编写了所有命名查询,但实体管理器没有创建命名查询。 我发布了stacktrace和context.xml 09:58:49,695 ERROR [stderr] (http-localhost-127.0.0.1-8080-2) java.lang.IllegalArgumentException: Named query not found: validateLoginHash 09:58:49,770 ERROR [stderr] (http-localhost-127.0.0.1-8080-2) at org.hibernate.ejb.AbstractEntityManagerImpl.createNamedQuery(AbstractEntityManagerImpl.java:642) 09:58:49,772 ERROR [stderr] (http-localhost-127.0.0.1-8080-2) at sun.reflect.GeneratedMethodAccessor14.invoke(Unknown Source) 09:58:49,774 ERROR [stderr] (http-localhost-127.0.0.1-8080-2) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 09:58:49,777 ERROR [stderr] (http-localhost-127.0.0.1-8080-2) at java.lang.reflect.Method.invoke(Method.java:597) 09:58:49,779 ERROR [stderr] (http-localhost-127.0.0.1-8080-2) at org.springframework.orm.jpa.ExtendedEntityManagerCreator$ExtendedEntityManagerInvocationHandler.invoke(ExtendedEntityManagerCreator.java:365) 09:58:49,782 ERROR [stderr] (http-localhost-127.0.0.1-8080-2) at $Proxy30.createNamedQuery(Unknown Source) […]

hibernate没有创建表但没有错误消息

我正在做一个spring-boot项目并尝试使用hibernate创建一个表,当我运行应用程序并且服务器正常启动时,我没有错误,但是表没有被创建。 StatusUpdate.java package model; import java.util.Date; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Table; import javax.persistence.Temporal; import javax.persistence.TemporalType; import javax.persistence.PrePersist; @Entity @Table(name=”status_update”) public class StatusUpdate { @Id @Column(name=”id”) @GeneratedValue(strategy=GenerationType.AUTO) private Long id; @Column(name=”text”) private String text; @Column(name=”added”) @Temporal(TemporalType.TIMESTAMP) private Date added; @PrePersist protected void onCreate() { if (added == null) { […]

SQLGrammarException:无法执行查询

我正在使用Struts2和Hibernate并在使用字符串test搜索数据时遇到错误,但在使用数字111搜索时对我有用。 我从bean类中获取此值,并在bean类中定义了字符串类型的属性。 下面我提供的代码: public String retrieveRecords() { String empId = p.getEmpId(); String paramValue = “”; if(empId !=null) if(!(empId.isEmpty())) paramValue =” where b.empId=”+empId; String empName = p.getEmployeeName(); if(empName !=null && empName != “”) { if(!(empName.isEmpty())){ if(paramValue == “”) paramValue =” where b.employeeName=”+empName; else paramValue =paramValue + ” and b.employeeName=”+empName; } } System.out.println(“=========paramvalues====”+paramValue); recList = (List) session.createQuery(“from […]

UnknownEntityTypeException:无法找到persister(Hibernate 5.0)

在下面的代码中,当我尝试执行Main.java我得到exception: Exception in thread “main” org.hibernate.UnknownEntityTypeException: Unable to locate persister: com.np.vta.test.pojo.Users at org.hibernate.internal.SessionFactoryImpl.locateEntityPersister(SessionFactoryImpl.java:792) at org.hibernate.internal.SessionImpl.locateEntityPersister(SessionImpl.java:2637) at org.hibernate.internal.SessionImpl.access$2500(SessionImpl.java:164) at org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl.(SessionImpl.java:2575) at org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl.(SessionImpl.java:2562) at org.hibernate.internal.SessionImpl.byId(SessionImpl.java:1044) at org.hibernate.internal.SessionImpl.get(SessionImpl.java:955) at com.app.test.Main.main(Main.java:20) 但如果我取消注释cfg.addClass( Users.class ).addResource( “com/np/vta/test/pojo/Users.hbm.xml” ); 然后代码工作正常。 为什么不从hibernate.cfg.xml读取 ? 项目设置 的hibernate.cfg.xml com.mysql.jdbc.Driver root@123321 jdbc:mysql://192.168.1.90:3306/test root org.hibernate.dialect.MySQLDialect Users.hbm.xml Users.java package com.np.vta.test.pojo; import java.io.Serializable; public class Users implements Serializable { private […]

Hibernate @ElementCollection – 需要更好的解决方案

我在Web应用程序中使用Hibernate 3.5.a-Final作为ORM-Layer。 我有几个Beans有相同的代码片段,这让我觉得这个设计并不是最好的。 但我无法弄清楚如何在hibernate中实现更好的一个。 要求 有几个类需要在多个语言环境中包含本地化描述 这些需要持久保存到db中 它们必须可以通过所有语言环境的子字符串进行搜索(如果seachstring是任何描述的子字符串,则显示) 本地化描述应该是可查询的,无需加载主对象(通过master-object-id,-type和locale) 当前的解决方案(不解决最后的要求) 每个类都包含一个注释为的HashMap @ElementCollection(fetch=FetchType.EAGER) @CollectionTable(name = “localized[X]Descriptions”, joinColumns = @JoinColumn(name = “id”)) @MapKeyJoinColumn(name = “locale”) public Map getLocalizedDescriptions() { return localizedDescriptions; } [X]是这个class级的名字 对于每个类,它是一个附加表(由hibernate生成) create table localized[X]Descriptions ( id integer not null, localizedDescriptions varchar(255), localizedDescriptions_KEY varchar(255), primary key (id, localizedDescriptions_KEY) ) 由于某种原因, @MapKeyJoinColumn被忽略了…… 我更喜欢的是这样的单个表格: create table localizedDescriptions […]

java.lang.ClassNotFoundException:javax.persistence.NamedStoredProcedureQuery – Hibernate错误

以上exception一直在抛出创建一个hibernate会话工厂。 在应用程序li​​b文件夹中有hibernate-jpa-2.1-api和javax.persistence.2.1.0。 我可以在两个jar中看到NamedStoredProcedureQuery类。 但我得到classnotfoundexception的运行时错误。 有什么建议吗?

即使数据库已关闭,如何使App服务器启动?

我正在使用spring和hibernate。 我的应用程序有3个模块。 每个模块都有一个特定的数据库 因此,Application处理3个数据库。 在服务器启动时,如果任何一个数据库关闭,则服务器不会启动。 我的要求是即使其中一个数据库关闭,服务器应该在其他模块的数据库启动时启动 ,用户可以在其他两个模块上工作。 请建议我如何实现这一目标? 我使用的是spring 3.x和hibernate 3.x. 我也在使用c3p0连接池 。 应用服务器是Tomcat 。 谢谢!

@Transactional如何影响Hibernate中的当前会话?

这是大多数DAO中使用的典型设置: @Transactional @Repository public class DAO { @Autowired SessionFactory sessionFactory; public void save(Entity o) { sessionFactory.getCurrentSession().save(o); } public Entity load(int id) { return (Entity)sessionFactory.getCurrentSession().get(Entity.class, id); } } 我看到只调用了getCurrentSession() ,没有openSession或者close 。 因此,当我从load返回实体时,它不在会话中,懒惰的集合无法加载。 同样,保存似乎总是冲洗! 来自spring的@Transactional注释是否完成了打开和关闭会话和事务的魔力?

没有合适的司机。 尝试使用Hibernate连接到Heroku上的postgresql数据库

很抱歉打扰你,但我一直收到错误,我真的不明白为什么。 正如标题中所指定的,我正在尝试使用hibernate在运行heroku的postgresql数据库上进行连接。 我的应用程序也在Heroku上运行。 它在本地模式下工作,我尝试了几个postgre驱动程序。 这是我的hibernate.cfg.xml: jdbc:postgresql://paafeblgkhhbkx:PhZEtHl2RHwbWDQJJOurmej89-@ec2-54-243-243-252.compute-1.amazonaws.com:5432/d1vsgjgnfr1koq paafeblgkhhbk My password org.postgresql.Driver org.hibernate.dialect.PostgreSQLDialect org.hibernate.cache.internal.NoCacheProvider true create 我收到会话时会覆盖url,密码和用户名: Configuration configuration = new Configuration(); configuration.addAnnotatedClass(Client.class); // and other classes try { Class.forName(“org.postgresql.Driver”); System.out.println(” === === DRIVER FOUND === === “); } catch (ClassNotFoundException e) { e.printStackTrace(); System.out.println(” === === DRIVER NOT FOUND === === “); } configuration.configure(); System.out.println(“============================= EXPORT […]