Tag: hibernate

Hibernate DetachedCriteria多个结果导致java

这是我的SQL语句。 SELECT USER_PROFILE.FIRST_NAME, USER_PROFILE.LAST_NAME, USER_PROFILE.USER_TYPE FROM USER_PROFILE INNER JOIN USER_LOGIN_STATUS ON USER_PROFILE.USER_ID=USER_LOGIN_STATUS.USER_ID ORDER BY USER_PROFILE.FIRST_NAME 而我正在尝试执行下面的代码,我认为这相当于hibernateDetachedCriteria并且预计只有两个数据作为结果。 DetachedCriteria dc = getDetachedCriteria(); DetachedCriteria userLoginCriteria = DetachedCriteria.forClass(UserLoginStatus.class); userLoginCriteria.setProjection(Projections.distinct(Projections.property(“userId”))); dc.add(Subqueries.propertyIn(UserField.id.name(), userLoginCriteria)); DetachedCriteria profileCriteria = dc.createCriteria(“profile”); profileCriteria.addOrder(Order.asc(“firstName”)); return getAll(dc, pageSetting); 但不幸的是,这是意想不到的结果:我有一个多数据结果。 名称| 输入| 本琼斯| 用户| 本琼斯| 用户| 汤姆荷马| 嘉宾| 汤姆荷马| 嘉宾| 有人知道确切的等效DetachedCriteria或解决方案吗? 非常感谢, xtian

基于Hibernate Annotation的Query执行错误?

实际上在我的基于Hibernate Annotation的应用程序中有这些ValueObject类(Bean类)这些是.. public Class CourseVO{ @Column(name=”NAME”) private String name; } SKillsetVO类 public Class SkillsetVO{ @ManyToOne @JoinColumn(name=”COURSE_ID”, insertable=false, updatable=false) private CourseVO courseSID; @ManyToMany(cascade = {CascadeType.ALL}, fetch=FetchType.EAGER) @JoinTable(name=”SKILLSET_COURSE”,joinColumns={@JoinColumn(name=”SKILLSET_ID”,referencedColumnName=”S_ID”)},inverseJoinColumns={@JoinColumn(name=”S_ID”)}) private Set course;} TimetableVO类 public class TimetableVO{ @ManyToOne @JoinColumn(name=”SKILLSET_ID”, insertable=false, updatable=false) private SkillsetVO skillsetSID; } 注意上面的代码Primarikey名为S_ID包含另一个名为AbstractVO的类,所以我的所有类都扩展了这个AbstractVO类,所以在主键上没有问题…现在在我的业务逻辑中我编写了一个查询: select tt from TimetableVO tt join tt.skillsetSID.course c where c.name in (:courseNames) 然后我给予:courseName喜欢’java’然后它给出error […]

org.hibernate.hql.internal.ast.QuerySyntaxException:意外令牌:*靠近第1行

我必须登录我的网站 Login 在控制器中我有 @RequestMapping(value=”/login”,method=RequestMethod.POST) public String loginUser(@RequestParam(“email”) String email, @RequestParam(“password”) String password,Model model,HttpSession session){ User persistedUser = userService.getUserByEmail(email); if(persistedUser!=null && persistedUser.getPassword().equals(password)){ session.setAttribute(“user”, persistedUser); return “home”; }else{ model.addAttribute(“error”, “Incorrect username or password, Please try again!”); return “login”; } } 在UserService中我将getUserByEmail()作为 public User getUserByEmail(String email) { return (User) em.createQuery(“SELECT * FROM User u WHERE u.email = :email”).setParameter(email, […]

集成了spring 3,hibernate 3,maven和mysql

我在applicationContext.xml中尝试了不同的sessionFactory。 它有同样的问题。 任何建议都会得到提升! applicationContext.xml中 ${jdbc.dialect} ${hibernate.show_sql} ${hibernate.format_sql} 这是pom.xml。 4.0.0 org.peterhuang myweb war 0.0.1-SNAPSHOT myweb Maven Webapp http://maven.apache.org junit junit 3.8.1 test org.springframework spring-core 3.2.4.RELEASE org.springframework spring-webmvc 3.2.4.RELEASE org.springframework spring-context 3.2.4.RELEASE org.springframework spring-orm 3.2.4.RELEASE org.springframework spring-hibernate3 2.0.8 org.springframework spring-tx 3.2.4.RELEASE org.hibernate hibernate-core 4.2.6.Final jstl jstl 1.2 javax.transaction jta 1.1 mysql mysql-connector-java 5.1.26 myweb 这是错误的轨道。 我在eclipse中运行它,在tomcat 7服务器上 […]

使用可滚动结果集在hibernate中批量读取数据

我正在阅读一篇关于使用hibernate http://java.dzone.com/articles/bulk-fetching-hibernate进行批量提取的博客。 在此, ScrollableResults用作解决方案。 在这里,我们仍然需要从会话中逐出对象。 我不明白使用ScrollableResults (或scroll() )与使用list()有何不同。 换句话说,以下陈述在绩效方面有何不同 List empList = session.createCriteria(Employee.class).list(); ScrollableResults sc = session.createCriteria(Employee.class).scroll(); 请告诉我。

没有连接表的多对多关联

我想在以下(简化)数据库中应用JPA: NODE AUTHORITY —– ———- idNode int idAuthorities int nameNode varchar(50) person varchar(255) idAuthorities int rank int PRIMARY KEY (idNode) PRIMARY KEY (idAuthorities, rank) FOREIGN KEY (idAuthorites) 因此,一个节点可以具有多个权限,并且多个节点可以引用一个权限。 我希望我的课程看起来像: @Entity @Table(name=”NODE”) public class Node { private Integer id; private String nameNode; private Set authorities; // … getter and setter normaly annoted for “id” and “nameNode” […]

如何使用Hibernate映射用户数据类型(复合类型)

我对Hibernate世界很新。 我已经通过ER CASE TOOL(TOAD)我的数据库建模,并且我已经定义了几个用户数据类型(复合类型)。 例如,假设我在PostgreSQL中声明了一个类型Contact,如下所示 CREATE TYPE Contact AS ( “email” Varchar, “phone” Varchar, “mobile” Varchar, “other” Varchar ); 现在假设我在用户实体上使用它,就像在下面的SQL代码中一样 CREATE TABLE Users( idUser Serial NOT NULL, login Character varying(20) NOT NULL, password Character varying(20) NOT NULL, name Character varying(30), surname Character varying(50), contact Contact ) — Add keys for table Users ALTER TABLE Users […]

保存新对象时,Hibernate未知实体错误

Student s = (Student) db.getByID(Student.class,1); s.setFirstName(“Preston”); db.saveOrUpdate(s); <–Successful save s = new Student(){{setFirstName("asdf");setLastName("asdf1");}}; s.setSchool((School) db.getByID(School.class, 1)); db.saveOrUpdate(s); <–Error occurs 线程“main”中的exceptionorg.hibernate.MappingException:未知实体:project.databaseio.TestClass $ 1 public void saveOrUpdate(Object object) { Transaction tx = sessionFactory.getCurrentSession().beginTransaction(); sessionFactory.getCurrentSession().saveOrUpdate(object); tx.commit(); } 堆栈跟踪 Exception in thread “main” org.hibernate.MappingException: Unknown entity: project.databaseio.TestClass$1 at org.hibernate.impl.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:548) at org.hibernate.impl.SessionImpl.getEntityPersister(SessionImpl.java:1338) at org.hibernate.engine.ForeignKeys.isTransient(ForeignKeys.java:180) at org.hibernate.event.def.AbstractSaveEventListener.getEntityState(AbstractSaveEventListener.java:487) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:84) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70) […]

支持实体 – 属性 – 值模型的Java框架

我有兴趣开发一个与EAV模型一起使用的基于门户的应用程序,并想知道是否有任何Java框架可以帮助这种类型的开发? salesforce.com使用EAV,目前有20个表。 我寻求的框架应该允许它可配置为不同的EAV实现

Hibernate ManyToMany是否可以为非键列自连接? 获取mappingException

我有以下问题。 我有一个与其他用户实体有多对多关系的用户实体。 因此,我希望通过多种注释进行自我连接。 此关系基于整个系统中使用的现有表,因此我根本无法更改DB。 所以我们有2个表User(Id,ShortName)和UserLink(ParentId,ChildId)。 ID的注释分配给ShortName,但User和UserLink中的实际键是来自UserLink的ID和来自UserLink的ParentId和ChildId。 我试图从User实体处理以下方式: @Id @Column(name = “ShortName”) private String shortName; @Column(name = “Id”) private long id; @ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER) @JoinTable(name = “UserLink”, joinColumns = { @JoinColumn(name = “ParentId”, referencedColumnName = “Id”) }, inverseJoinColumns = { @JoinColumn(name = “ChildId”, referencedColumnName = “Id”) }) private Collection children; 由于User实体中的键位于ShortName字段上,因此我必须将“Id”指定为引用的列名称param。 如果我不这样做,它将ShortName作为键,不会获取任何数据。 当我尝试按照上面显示的方式执行此操作时,我得到以下exception: […]