org.hibernate.MappingException:未知实体:java.util.HashSet

时间:2015-02-26 20:05:46

标签: java hibernate hashset

我想在主键表中添加值,同时在外键表中添加值但是得到此异常请任何人帮忙。提前谢谢。

TrxTender:

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

    /**
     * TrxTender generated by hbm2java
     */
    public class TrxTender  implements java.io.Serializable {


         private String tenderId;
         private String title;
         private Serializable credate;
         private Date startDate;
         private Date endDate;
         private String username;
         private char status;
         private String tstatus;
         private Set<TrxAuditTrail> trxAuditTrails = new HashSet<TrxAuditTrail>();
         private Set<TrxFile> trxFiles = new HashSet<TrxFile>();
         private Set cfgStatuses = new HashSet(0);

        public TrxTender() {
        }


        public TrxTender(String tenderId, String title, Serializable credate, Date startDate, Date endDate, char status) {
            this.tenderId = tenderId;
            this.title = title;
            this.credate = credate;
            this.startDate = startDate;
            this.endDate = endDate;
            this.status = status;
        }
        public TrxTender(String tenderId, String title, Serializable credate, Date startDate, Date endDate, String username, char status, String tstatus, Set trxAuditTrails, Set trxFiles, Set cfgStatuses) {
           this.tenderId = tenderId;
           this.title = title;
           this.credate = credate;
           this.startDate = startDate;
           this.endDate = endDate;
           this.username = username;
           this.status = status;
           this.tstatus = tstatus;
           this.trxAuditTrails = trxAuditTrails;
           this.trxFiles = trxFiles;
           this.cfgStatuses = cfgStatuses;
        }

        public String getTenderId() {
            return this.tenderId;
        }

        public void setTenderId(String tenderId) {
            this.tenderId = tenderId;
        }
        public String getTitle() {
            return this.title;
        }

        public void setTitle(String title) {
            this.title = title;
        }
        public Serializable getCredate() {
            return this.credate;
        }

        public void setCredate(Serializable credate) {
            this.credate = credate;
        }
        public Date getStartDate() {
            return this.startDate;
        }

        public void setStartDate(Date startDate) {
            this.startDate = startDate;
        }
        public Date getEndDate() {
            return this.endDate;
        }

        public void setEndDate(Date endDate) {
            this.endDate = endDate;
        }
        public String getUsername() {
            return this.username;
        }

        public void setUsername(String username) {
            this.username = username;
        }
        public char getStatus() {
            return this.status;
        }

        public void setStatus(char status) {
            this.status = status;
        }
        public String getTstatus() {
            return this.tstatus;
        }

        public void setTstatus(String tstatus) {
            this.tstatus = tstatus;
        }

        public Set<TrxAuditTrail> getTrxAuditTrails() {
            return trxAuditTrails;
        }

        public void setTrxAuditTrails(Set<TrxAuditTrail> trxAuditTrails) {
            this.trxAuditTrails = trxAuditTrails;
        }

        public Set<TrxFile> getTrxFiles() {
            return trxFiles;
        }

        public void setTrxFiles(Set<TrxFile> trxFiles) {
            this.trxFiles = trxFiles;
        }

        public Set getCfgStatuses() {
            return this.cfgStatuses;
        }

        public void setCfgStatuses(Set cfgStatuses) {
            this.cfgStatuses = cfgStatuses;
        }




    }

    TrxTender.hbm.xml:

    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
    <!-- Generated Feb 26, 2015 12:06:22 PM by Hibernate Tools 3.6.0 -->
    <hibernate-mapping>
        <class name="Pojos.TrxTender" table="TRX_TENDER" schema="TENDER_MGMT">
            <id name="tenderId" type="string">
                <column name="TENDER_ID" length="2000" />
                <generator class="assigned" />
            </id>
            <property name="title" type="string">
                <column name="TITLE" length="600" not-null="true" />
            </property>
            <property name="credate" type="serializable" insert="false" update="false">
                <column name="CREDATE" not-null="true" />
            </property>
            <property name="startDate" type="date">
                <column name="START_DATE" length="7" not-null="true" />
            </property>
            <property name="endDate" type="date">
                <column name="END_DATE" length="7" not-null="true" />
            </property>
            <property name="username" type="string" >
                <column name="USERNAME" length="600" />
            </property>
            <property name="status" type="char">
                <column name="STATUS" length="1" not-null="true" />
            </property>
            <property name="tstatus" type="string">
                <column name="TSTATUS" length="600" />
            </property>
            <set name="trxAuditTrails" table="TRX_AUDIT_TRAIL" inverse="true" lazy="true" fetch="select">
                <key>
                    <column name="TENDER_ID" length="2000" not-null="true" />
                </key>
                <one-to-many class="Pojos.TrxAuditTrail" />
            </set>
            <set name="trxFiles" table="TRX_FILE" inverse="true" lazy="true" fetch="select">
                <key>
                    <column name="TENDER_ID" length="2000" not-null="true" />
                </key>
                <one-to-many class="Pojos.TrxFile" />
            </set>
            <set name="cfgStatuses" table="CFG_STATUS" inverse="true" lazy="true" fetch="select">
                <key>
                    <column name="TENDER_ID" length="2000" not-null="true" />
                </key>
                <one-to-many class="Pojos.CfgStatus" />
            </set>
        </class>
    </hibernate-mapping>

TrxFile:

import java.io.Serializable;

/**
 * TrxFile generated by hbm2java
 */
public class TrxFile  implements java.io.Serializable {


     private String tenderFileId;
     private TrxTender trxTender;
     private String filePath;
     private Serializable dateSaved;
     private String username;
     private char status;
     private String fileName;

    public TrxFile() {
    }


    public TrxFile(String tenderFileId, TrxTender trxTender, String filePath, Serializable dateSaved, char status, String fileName) {
        this.tenderFileId = tenderFileId;
        this.trxTender = trxTender;
        this.filePath = filePath;
        this.dateSaved = dateSaved;
        this.status = status;
        this.fileName = fileName;
    }
    public TrxFile(String tenderFileId, TrxTender trxTender, String filePath, String username, String fileName) {
       this.tenderFileId = tenderFileId;
       this.trxTender = trxTender;
       this.filePath = filePath;
       this.dateSaved = dateSaved;
       this.username = username;
       this.status = status;
       this.fileName = fileName;
    }

    public String getTenderFileId() {
        return this.tenderFileId;
    }

    public void setTenderFileId(String tenderFileId) {
        this.tenderFileId = tenderFileId;
    }
    public TrxTender getTrxTender() {
        return this.trxTender;
    }

    public void setTrxTender(TrxTender trxTender) {
        this.trxTender = trxTender;
    }
    public String getFilePath() {
        return this.filePath;
    }

    public void setFilePath(String filePath) {
        this.filePath = filePath;
    }
    public Serializable getDateSaved() {
        return this.dateSaved;
    }

    public void setDateSaved(Serializable dateSaved) {
        this.dateSaved = dateSaved;
    }
    public String getUsername() {
        return this.username;
    }

    public void setUsername(String username) {
        this.username = username;
    }
    public char getStatus() {
        return this.status;
    }

    public void setStatus(char status) {
        this.status = status;
    }
    public String getFileName() {
        return this.fileName;
    }

    public void setFileName(String fileName) {
        this.fileName = fileName;
    }




}


<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<!-- Generated Feb 26, 2015 12:06:22 PM by Hibernate Tools 3.6.0 -->
<hibernate-mapping>
    <class name="Pojos.TrxFile" table="TRX_FILE" schema="TENDER_MGMT">
        <id name="tenderFileId" type="string">
            <column name="TENDER_FILE_ID" length="2000" />
            <generator class="assigned" />
        </id>
        <many-to-one name="trxTender" class="Pojos.TrxTender" fetch="select">
            <column name="TENDER_ID" length="2000" not-null="true" />
        </many-to-one>
        <property name="filePath" type="string">
            <column name="FILE_PATH" length="600" not-null="true" />
        </property>
        <property name="dateSaved" type="serializable" insert="false" update="false">
            <column name="DATE_SAVED" not-null="true" />
        </property>
        <property name="username" type="string">
            <column name="USERNAME" length="600" />
        </property>
        <property name="status" type="char" insert="false" update="false">
            <column name="STATUS" length="1" not-null="true" />
        </property>
        <property name="fileName" type="string">
            <column name="FILE_NAME" length="2000" not-null="true" />
        </property>
    </class>
</hibernate-mapping>

错误:错误如下:

Severe:   org.hibernate.MappingException: Unknown entity: java.util.HashSet
    at org.hibernate.internal.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:1143)
    at org.hibernate.internal.SessionImpl.getEntityPersister(SessionImpl.java:1433)
    at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:116)
    at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:206)
    at org.hibernate.event.internal.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:55)
    at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:191)
    at org.hibernate.event.internal.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:49)
    at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:90)
    at org.hibernate.internal.SessionImpl.fireSave(SessionImpl.java:764)
    at org.hibernate.internal.SessionImpl.save(SessionImpl.java:756)
    at org.hibernate.internal.SessionImpl.save(SessionImpl.java:752)
    at ManagedBean.FileUpload.uploadFile(FileUpload.java:195)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at com.sun.el.parser.AstValue.invoke(AstValue.java:275)
    at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:304)
    at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
    at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:147)
    at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88)
    at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:818)
    at javax.faces.component.UICommand.broadcast(UICommand.java:300)
    at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:790)
    at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1282)
    at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
    at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:646)
    at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:344)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:72)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:316)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)
    at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)
    at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:357)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:260)
    at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:188)
    at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:191)
    at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:168)
    at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:189)
    at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:288)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:206)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:136)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:114)
    at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
    at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:838)
    at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:113)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:115)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:55)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:135)
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:564)
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:544)
    at java.lang.Thread.run(Thread.java:745)
WARN:   SQL Error: 1400, SQLState: 23000

1 个答案:

答案 0 :(得分:0)

我想这是你的问题:

 public Set<TrxAuditTrail> getTrxAuditTrails() 

您似乎还没有映射TRX_TENDERTRX_AUDIT_TRAIL表之间的关系。

我没有使用hbm2java的经验,但似乎您错过了@OneToMany关系。