-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 1 post ] 
Author Message
 Post subject: Problem with annotation mapping
PostPosted: Thu Jun 30, 2011 9:29 am 
Newbie

Joined: Thu Jun 30, 2011 9:12 am
Posts: 1
Hello,
I have this two classes, in domain model of my webapp
Code:
package org.seke.filmania.domain;

import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@Entity
@Table(name = "MOVIE")
@NamedQueries({ @NamedQuery(name = Movie.GET_All_MOVIES, query = "from Movie m ") })
public class Movie {

   public static final String GET_All_MOVIES = "Movie.getAllMovies";

   @Id
   @GeneratedValue(strategy = IDENTITY)
   @Column(name = "ID", unique = true, nullable = false)
   private long id;
   
   @ManyToOne(fetch = FetchType.LAZY)
   @JoinColumn(name = "USER_ID", nullable = false)
   private User user;
   
   @Column(name = "NAME", length = 20)
   private String name;
   
   @Temporal(TemporalType.TIMESTAMP)
   @Column(name = "INPUTDATE", length = 19)
   private Date inputDate;
   
   @Column(name = "RANK", precision = 22, scale = 0)
   private Double rank;
   
   @OneToMany(fetch = FetchType.LAZY)
   @JoinTable(name = "COMMENT",joinColumns = @JoinColumn(name = "MOVIE_ID"))
   private Set<Comment> comments = new HashSet<Comment>(0);
   
   @ManyToMany(fetch = FetchType.LAZY)
   @JoinTable(name = "movie_genre", catalog = "filmania",
         joinColumns = { @JoinColumn(name = "MOVIE_ID", nullable = false, updatable = false) },
         inverseJoinColumns = { @JoinColumn(name = "GENRE_ID", nullable = false, updatable = false) })
   private Set<Genre> genres = new HashSet<Genre>(0);

   public Movie() {
   }

   public Movie(User user) {
      this.user = user;
   }

   public Movie(User user, String name, Date inputDate, Double rank, Set<Comment> comments, Set<Genre> genres) {
      this.user = user;
      this.name = name;
      this.inputDate = inputDate;
      this.rank = rank;
      this.comments = comments;
      this.genres = genres;
   }

   public long getId() {
      return this.id;
   }

   public void setId(long id) {
      this.id = id;
   }

   public User getUser() {
      return this.user;
   }

   public void setUser(User user) {
      this.user = user;
   }

   public String getName() {
      return this.name;
   }

   public void setName(String name) {
      this.name = name;
   }

   public Date getInputDate() {
      return this.inputDate;
   }

   public void setInputDate(Date inputDate) {
      this.inputDate = inputDate;
   }

   public Double getRank() {
      return this.rank;
   }

   public void setRank(Double rank) {
      this.rank = rank;
   }

   public Set<Comment> getComments() {
      return this.comments;
   }

   public void setComments(Set<Comment> comments) {
      this.comments = comments;
   }

   public Set<Genre> getGenres() {
      return this.genres;
   }

   public void setGenres(Set<Genre> genres) {
      this.genres = genres;
   }

}

package org.seke.filmania.domain;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.AttributeOverride;
import javax.persistence.AttributeOverrides;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@Entity
@Table(name = "comment", catalog = "filmania")
public class Comment implements Serializable {

   @Id
   @GeneratedValue
   @Column(name = "ID")
   private long id;
   
   @ManyToOne(fetch = FetchType.LAZY)
   @JoinColumn(name = "USER_ID", nullable = false, insertable = false, updatable = false)
   private User user;
   
   @ManyToOne(fetch = FetchType.LAZY)
   @JoinColumn(name = "MOVIE_ID", nullable = false, insertable = false, updatable = false)
   private Movie movie;
   
   @Column(name = "CONTENT")
   private String content;
   
   @Temporal(TemporalType.TIMESTAMP)
   @Column(name = "INPUTDATE", length = 19)
   private Date inputDate;

   public Comment() {
   }

   public Comment(long id, User user, Movie movie, String content, Date inputDate) {
      this.id = id;
      this.user = user;
      this.movie = movie;
      this.content = content;
      this.inputDate = inputDate;
   }

   public long getId() {
      return this.id;
   }

   public void setId(long id) {
      this.id = id;
   }
   
   public User getUser() {
      return this.user;
   }

   public void setUser(User user) {
      this.user = user;
   }
   
   public Movie getMovie() {
      return this.movie;
   }

   public void setMovie(Movie movie) {
      this.movie = movie;
   }

   public String getContent() {
      return this.content;
   }

   public void setContent(String content) {
      this.content = content;
   }
   
   public Date getInputDate() {
      return this.inputDate;
   }

   public void setInputDate(Date inputDate) {
      this.inputDate = inputDate;
   }

}



Movie can have many comments and comment is for only one movie. When I access jsp page which should show movie and all it's comments I get exception:
Code:
Hibernate:
    select
        movie0_.ID as ID2_0_,
        movie0_.INPUTDATE as INPUTDATE2_0_,
        movie0_.NAME as NAME2_0_,
        movie0_.RANK as RANK2_0_,
        movie0_.USER_ID as USER5_2_0_
    from
        MOVIE movie0_
    where
        movie0_.ID=?
Hibernate:
    select
        user0_.ID as ID4_0_,
        user0_.ACCOUNTNONEXPIRED as ACCOUNTN2_4_0_,
        user0_.ACCOUNTNONLOCKED as ACCOUNTN3_4_0_,
        user0_.CREDINTIALSNONEXPIRED as CREDINTI4_4_0_,
        user0_.EMAIL as EMAIL4_0_,
        user0_.ENABLED as ENABLED4_0_,
        user0_.PASSWORD as PASSWORD4_0_,
        user0_.USERNAME as USERNAME4_0_
    from
        filmania.user user0_
    where
        user0_.ID=?
Jun 30, 2011 3:23:52 PM org.displaytag.export.ExportViewFactory <init>
INFO: Initializing ExportViewFactory with type={csv,excel,xml,pdf}
Jun 30, 2011 3:23:52 PM org.displaytag.properties.TableProperties getLocaleResolverInstance
INFO: No LocaleResolver configured.
Hibernate:
    select
        comments0_.MOVIE_ID as MOVIE1_2_1_,
        comments0_.comments_ID as comments2_1_,
        comment1_.ID as ID0_0_,
        comment1_.CONTENT as CONTENT0_0_,
        comment1_.INPUTDATE as INPUTDATE0_0_,
        comment1_.MOVIE_ID as MOVIE4_0_0_,
        comment1_.USER_ID as USER5_0_0_
    from
        COMMENT comments0_
    inner join
        filmania.comment comment1_
            on comments0_.comments_ID=comment1_.ID
    where
        comments0_.MOVIE_ID=?
Jun 30, 2011 3:23:52 PM org.hibernate.util.JDBCExceptionReporter logExceptions
WARNING: SQL Error: 1054, SQLState: 42S22
Jun 30, 2011 3:23:52 PM org.hibernate.util.JDBCExceptionReporter logExceptions
SEVERE: Unknown column 'comments0_.comments_ID' in 'field list'
Jun 30, 2011 3:23:52 PM org.apache.catalina.core.ApplicationDispatcher invoke
SEVERE: Servlet.service() for servlet jsp threw exception
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'comments0_.comments_ID' in 'field list'
   at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
   at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
   at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
   at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
   at com.mysql.jdbc.Util.handleNewInstance(Util.java:407)
   at com.mysql.jdbc.Util.getInstance(Util.java:382)
   at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1052)
   at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3593)
   at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3525)
   at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1986)
   at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2140)
   at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2626)
   at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2111)
   at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2273)
   at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:208)
   at org.hibernate.loader.Loader.getResultSet(Loader.java:1953)
   at org.hibernate.loader.Loader.doQuery(Loader.java:802)
   at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:274)
   at org.hibernate.loader.Loader.loadCollection(Loader.java:2166)
   at org.hibernate.loader.collection.CollectionLoader.initialize(CollectionLoader.java:62)
   at org.hibernate.persister.collection.AbstractCollectionPersister.initialize(AbstractCollectionPersister.java:627)
   at org.hibernate.event.def.DefaultInitializeCollectionEventListener.onInitializeCollection(DefaultInitializeCollectionEventListener.java:83)
   at org.hibernate.impl.SessionImpl.initializeCollection(SessionImpl.java:1863)
   at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:369)
   at org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:111)
   at org.hibernate.collection.PersistentSet.iterator(PersistentSet.java:186)
   at org.apache.commons.collections.IteratorUtils.getIterator(IteratorUtils.java:861)
   at org.displaytag.tags.TableTag.initParameters(TableTag.java:1068)
   at org.displaytag.tags.TableTag.doStartTag(TableTag.java:767)
   at org.apache.jsp.WEB_002dINF.views.movie.view_jsp._jspx_meth_display_005ftable_005f0(view_jsp.java:127)
   at org.apache.jsp.WEB_002dINF.views.movie.view_jsp._jspService(view_jsp.java:97)
   at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
   at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:386)
   at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
   at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
   at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:70)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
   at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
   at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
   at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
   at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
   at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238)
   at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250)
   at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1047)
   at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:817)
   at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
   at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
   at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
   at org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:113)
   at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
   at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
   at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
   at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
   at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
   at java.lang.Thread.run(Thread.java:662)
Jun 30, 2011 3:23:52 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet dispatcher threw exception
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'comments0_.comments_ID' in 'field list'
   at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
   at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
   at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
   at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
   at com.mysql.jdbc.Util.handleNewInstance(Util.java:407)
   at com.mysql.jdbc.Util.getInstance(Util.java:382)
   at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1052)
   at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3593)
   at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3525)
   at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1986)
   at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2140)
   at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2626)
   at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2111)
   at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2273)
   at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:208)
   at org.hibernate.loader.Loader.getResultSet(Loader.java:1953)
   at org.hibernate.loader.Loader.doQuery(Loader.java:802)
   at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:274)
   at org.hibernate.loader.Loader.loadCollection(Loader.java:2166)
   at org.hibernate.loader.collection.CollectionLoader.initialize(CollectionLoader.java:62)
   at org.hibernate.persister.collection.AbstractCollectionPersister.initialize(AbstractCollectionPersister.java:627)
   at org.hibernate.event.def.DefaultInitializeCollectionEventListener.onInitializeCollection(DefaultInitializeCollectionEventListener.java:83)
   at org.hibernate.impl.SessionImpl.initializeCollection(SessionImpl.java:1863)
   at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:369)
   at org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:111)
   at org.hibernate.collection.PersistentSet.iterator(PersistentSet.java:186)
   at org.apache.commons.collections.IteratorUtils.getIterator(IteratorUtils.java:861)
   at org.displaytag.tags.TableTag.initParameters(TableTag.java:1068)
   at org.displaytag.tags.TableTag.doStartTag(TableTag.java:767)
   at org.apache.jsp.WEB_002dINF.views.movie.view_jsp._jspx_meth_display_005ftable_005f0(view_jsp.java:127)
   at org.apache.jsp.WEB_002dINF.views.movie.view_jsp._jspService(view_jsp.java:97)
   at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
   at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:386)
   at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
   at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
   at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:70)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
   at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
   at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
   at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
   at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
   at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238)
   at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250)
   at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1047)
   at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:817)
   at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
   at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
   at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
   at org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:113)
   at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
   at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
   at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
   at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
   at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
   at java.lang.Thread.run(Thread.java:662)

I added open session in view pattern to configuration of my webapp. Does anyone now what is the problem here? I am guessing that it has something with annotation mappings.
Thanks for help in advance.


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 1 post ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.