2015-12-16 58 views
1

我有一個應用程序(使用註釋的Spring 4 MVC + Hibernate 4 + MySQL + Maven集成示例),使用基於註釋的配置集成了Spring和Hibernate,我發現該模式是自動的當我啓動應用程序時創建。但我沒有這個屬性org.hibernate.MappingException:無法確定類型

我有這個表:

CREATE TABLE `t_device_event` (
    `id` int(11) unsigned NOT NULL AUTO_INCREMENT, 
    `device_event_lat` float(10,6) DEFAULT NULL, 
    `device_event_lng` float(10,6) unsigned NOT NULL, 
    `device_id` int(11) unsigned NOT NULL, 
    `device_event_message` varchar(100) DEFAULT NULL, 
    `device_event_received` TIMESTAMP , 
    `device_event_coordinates` point DEFAULT NULL, 
    PRIMARY KEY (`id`), 
    KEY `device_id` (`device_id`), 
    CONSTRAINT `t_device_event_ibfk_1` FOREIGN KEY (`device_id`) REFERENCES `t_device` (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 

和這個bean

@Entity 
@Table(name="t_device_event") 
public class DeviceEvent { 

    public class Coordinates { 

     private Double lat; 

     private Double lng; 


     public Coordinates(Double lat, Double lng) { 
      super(); 
      this.lat = lat; 
      this.lng = lng; 
     } 

     public Double getLat() { 
      return lat; 
     } 

     public void setLat(Double lat) { 
      this.lat = lat; 
     } 

     public Double getLng() { 
      return lng; 
     } 

     public void setLng(Double lng) { 
      this.lng = lng; 
     } 

    } 

    @Id 
    @GeneratedValue(strategy = GenerationType.IDENTITY) 
    private int id; 

    @ManyToOne 
    @JoinColumn(name="device_id") 
    private Device device; 


    @Column(name = "device_event_received") 
    private Long received; 


    @Column(name = "device_event_message") 
    private String message; 



    @Column(name = "device_event_coordinates") 
    private Coordinates coordinates; 


    public Coordinates getCoordinates() { 
     return coordinates; 
    } 

    public void setCoordinates(Coordinates coordinates) { 
     this.coordinates = coordinates; 
    } 

    public int getId() { 
     return id; 
    } 

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

    public Device getDevice() { 
     return device; 
    } 

    public void setDevice(Device device) { 
     this.device = device; 
    } 

    public Long getReceived() { 
     return received; 
    } 

    public void setReceived(Long received) { 
     this.received = received; 
    } 

    public String getMessage() { 
     return message; 
    } 

    public void setMessage(String message) { 
     this.message = message; 
    } 

    public DeviceEvent(Device device) { 
     super(); 
     this.device = device; 
    } 
} 

,但我有這個錯誤在啓動應用程序:

org.hibernate.MappingException: Could not determine type for: fr.telecom.model.DeviceEvent$Coordinates, at table: t_device_event, for columns: [org.hibernate.mapping.Column(device_event_coordinates)] 
    org.hibernate.mapping.SimpleValue.getType(SimpleValue.java:336) 
    org.hibernate.mapping.SimpleValue.isValid(SimpleValue.java:310) 
    org.hibernate.mapping.Property.isValid(Property.java:241) 
    org.hibernate.mapping.PersistentClass.validate(PersistentClass.java:496) 
    org.hibernate.mapping.RootClass.validate(RootClass.java:270) 
    org.hibernate.cfg.Configuration.validate(Configuration.java:1358) 
    org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1849) 
    org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:850) 
    org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:843) 
    org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.withTccl(ClassLoaderServiceImpl.java:398) 
    org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:842) 
    org.hibernate.jpa.HibernatePersistenceProvider.createContainerEntityManagerFactory(HibernatePersistenceProvider.java:152) 
    org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:336) 
    org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:318) 
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1612) 
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1549) 
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539) 
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475) 
    org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:302) 
    org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228) 
    org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:298) 
    org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193) 
    org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:973) 
    org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:750) 
    org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:482) 
    org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:658) 
    org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:530) 
    org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:484) 
    org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136) 
    javax.servlet.GenericServlet.init(GenericServlet.java:158) 
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501) 
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) 
    org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) 
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) 
    org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041) 
    org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607) 
    org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:315) 
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    java.lang.Thread.run(Thread.java:745) 

回答

0

device_event_coordinates與其在query和中的類型不匹配班。

@Column(name = "device_event_coordinates") 
    private Coordinates coordinates; 

和:

`device_event_coordinates` `point` DEFAULT NULL, 
相關問題