- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我第一次使用 MyEclipse For Spring,它支持 hibernate 。
下面是mysql数据库的相关部分:
CREATE TABLE
`delidete`.`DatiGeneraliVistoContabile` (
`DatiGeneraliId` int NOT NULL, <---- P.K., Foreign key to table Datigenerali
`SoggettiCodice` int NOT NULL, <---- P.K., Foreign key to table Soggetti
`DGVCDataInizio` date NOT NULL,
`DGVCDataFine` date) ;
CREATE TABLE
`delidete`.`DatiGeneraliParereTecnico` (
`DatiGeneraliId` int NOT NULL, <---- P.K., Foreign key to above table (DatigeneraliId)
`TecnicoParereCodice` int NOT NULL, <---- P.K., Foreign key to above table (SoggettiCodice)
`DGTPDescrizione` varchar (255) NOT NULL,
`DGTPDataInizio` date NOT NULL,
`DGTPDataFine` date) ;
ALTER TABLE `delidete`.`DatiGeneraliVistoContabile`
ADD PRIMARY KEY (`DatiGeneraliId`, `SoggettiCodice`) ;
ALTER TABLE `delidete`.`DatiGeneraliParereTecnico`
ADD CONSTRAINT `IDatiGeneraliParereTecnico`
FOREIGN KEY (`DatiGeneraliId`, `TecnicoParereCodice`)
REFERENCES `DatiGeneraliVistoContabile` (`DatiGeneraliId`, `SoggettiCodice`) ;
ALTER TABLE `delidete`.`DatiGeneraliVistoContabile`
ADD CONSTRAINT `IDatiGeneraliVistoContabile2`
FOREIGN KEY (`DatiGeneraliId`)
REFERENCES `DatiGenerali` (`DatiGeneraliId`) ;
ALTER TABLE `delidete`.`DatiGeneraliVistoContabile`
ADD CONSTRAINT `IDatiGeneraliVistoContabile1`
FOREIGN KEY (`SoggettiCodice`)
REFERENCES `Soggetti` (`SoggettiCodice`) ;
这是两个生成的类:
Datigeneralivistocontabile:
@IdClass(delidete.domain.DatigeneralivistocontabilePK.class)
@Entity
@Table(catalog = "delidete", name = "datigeneralivistocontabile")
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(namespace = "DeliDete/delidete/domain", name = "Datigeneralivistocontabile")
public class Datigeneralivistocontabile implements Serializable
{
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumns({@JoinColumn(name = "DatiGeneraliId", referencedColumnName = "DatiGeneraliId", nullable = false, insertable = false, updatable = false)})
@XmlTransient
Datigenerali datigenerali;
@Column(name = "DatiGeneraliId", nullable = false)
@Basic(fetch = FetchType.EAGER)
@Id
@XmlElement
Integer datiGeneraliId;
----------------------------------------------------------------------
//don't know why MyEclipse put this link into this class
@OneToOne(mappedBy = "datigeneralivistocontabile", fetch = FetchType.LAZY)
@XmlElement(name = "", namespace = "")
Datigeneralipareretecnico datigeneralipareretecnico;
----------------------------------------------------------------------
@Temporal(TemporalType.DATE)
@Column(name = "DGVCDataFine")
@Basic(fetch = FetchType.EAGER)
@XmlElement
Calendar dgvcdataFine;
@Temporal(TemporalType.DATE)
@Column(name = "DGVCDataInizio", nullable = false)
@Basic(fetch = FetchType.EAGER)
@XmlElement
Calendar dgvcdataInizio;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumns({@JoinColumn(name = "SoggettiCodice", referencedColumnName = "SoggettiCodice", nullable = false, insertable = false, updatable = false)})
@XmlTransient
Soggetti soggetti;
@Column(name = "SoggettiCodice", nullable = false)
@Basic(fetch = FetchType.EAGER)
@Id
@XmlElement
Integer soggettiCodice;
constructors, getters, setters, toString, other stuff
}
其他类
Datigeneralipareretecnico:
@IdClass(delidete.domain.DatigeneralipareretecnicoPK.class)
@Entity
@Table(catalog = "delidete", name = "datigeneralipareretecnico")
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(namespace = "DeliDete/delidete/domain", name = "Datigeneralipareretecnico")
public class Datigeneralipareretecnico implements Serializable
{
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumns({@JoinColumn(name = "IDEnte", referencedColumnName = "DatiGeneraliId", nullable = false)})
@XmlTransient
Datigenerali datigenerali;
@Column(name = "DatiGeneraliId", nullable = false)
@Basic(fetch = FetchType.EAGER)
@Id
@XmlElement
Integer datiGeneraliId;
@PrimaryKeyJoinColumn
@OneToOne(fetch = FetchType.LAZY)
@XmlElement(name = "", namespace = "")
Datigeneralivistocontabile datigeneralivistocontabile;
@Temporal(TemporalType.DATE)
@Column(name = "DGTPDataFine")
@Basic(fetch = FetchType.EAGER)
@XmlElement
Calendar dgtpdataFine;
@Temporal(TemporalType.DATE)
@Column(name = "DGTPDataInizio", nullable = false)
@Basic(fetch = FetchType.EAGER)
@XmlElement
Calendar dgtpdataInizio;
@Column(name = "DGTPDescrizione", nullable = false)
@Basic(fetch = FetchType.EAGER)
@XmlElement
String dgtpdescrizione;
@Column(name = "TecnicoParereCodice", nullable = false)
@Basic(fetch = FetchType.EAGER)
@Id
@XmlElement
Integer tecnicoParereCodice;
constructors, getters, setters, toString, other stuff
}
还有两个PK类别:
public class DatigeneralivistocontabilePK implements Serializable
{
@Column(name = "DatiGeneraliId", nullable = false)
@Basic(fetch = FetchType.EAGER)
@Id
public Integer datiGeneraliId;
@Column(name = "SoggettiCodice", nullable = false)
@Basic(fetch = FetchType.EAGER)
@Id
public Integer soggettiCodice;
}
public class DatigeneralipareretecnicoPK implements Serializable
{
@Column(name = "DatiGeneraliId", nullable = false)
@Basic(fetch = FetchType.EAGER)
@Id
public Integer datiGeneraliId;
@Column(name = "TecnicoParereCodice", nullable = false)
@Basic(fetch = FetchType.EAGER)
@Id
public Integer tecnicoParereCodice;
}
现在,当我尝试保存 Datigeneralivistocontabile 实体时,一切正常,但是当我尝试打开 jsp 来显示该实体时,我得到:
GRAVE: Servlet.service() for servlet [DeliDete Servlet] in context with path [/DeliDete] threw exception [Request processing failed; nested exception is java.lang.IllegalArgumentException: org.hibernate.TypeMismatchException: Provided id of the wrong type for class delidete.domain.Datigeneralipareretecnico. Expected: class delidete.domain.DatigeneralipareretecnicoPK, got class delidete.domain.DatigeneralivistocontabilePK] with root cause
org.hibernate.TypeMismatchException: Provided id of the wrong type for class delidete.domain.Datigeneralipareretecnico. Expected: class delidete.domain.DatigeneralipareretecnicoPK, got class delidete.domain.DatigeneralivistocontabilePK
at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:135)
at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:1080)
at org.hibernate.impl.SessionImpl.internalLoad(SessionImpl.java:1028)
at org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:623)
at org.hibernate.type.EntityType.resolve(EntityType.java:431)
at org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:140)
at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:898)
at org.hibernate.loader.Loader.doQuery(Loader.java:773)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:270)
at org.hibernate.loader.Loader.doList(Loader.java:2449)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2192)
at org.hibernate.loader.Loader.list(Loader.java:2187)
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:452)
at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:363)
at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1258)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102)
at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:241)
-----------------------------------------------------------------------
at delidete.dao.DatigeneralivistocontabileDAOImpl.findAllDatigeneralivistocontabiles(DatigeneralivistocontabileDAOImpl.java:109)
at delidete.dao.DatigeneralivistocontabileDAOImpl.findAllDatigeneralivistocontabiles(DatigeneralivistocontabileDAOImpl.java:93)
-----------------------------------------------------------------------
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at $Proxy61.findAllDatigeneralivistocontabiles(Unknown Source)
-----------------------------------------------------------------------
at delidete.service.DatigeneralivistocontabileServiceImpl.loadDatigeneralivistocontabiles(DatigeneralivistocontabileServiceImpl.java:226)
-----------------------------------------------------------------------
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at $Proxy88.loadDatigeneralivistocontabiles(Unknown Source)
-----------------------------------------------------------------------
at delidete.web.DatigeneralivistocontabileController.listDatigeneralivistocontabile(DatigeneralivistocontabileController.java:466)
-----------------------------------------------------------------------
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:426)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:414)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790)
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:621)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at com.opensymphony.sitemesh.webapp.SiteMeshFilter.obtainContent(SiteMeshFilter.java:129)
at com.opensymphony.sitemesh.webapp.SiteMeshFilter.doFilter(SiteMeshFilter.java:77)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
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:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:185)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:151)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:269)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
我的类位于“delidete”包中。抛出该异常的方法是:
@Transactional
public Set<Datigeneralivistocontabile> findAllDatigeneralivistocontabiles(
int startResult, int maxRows) throws DataAccessException
{
Query query = createNamedQuery("findAllDatigeneralivistocontabiles",
startResult, maxRows);
return new LinkedHashSet<Datigeneralivistocontabile>(
query.getResultList()); <---- this line throws the exception
}
它调用的namedquery是:
@NamedQuery(name = "findAllDatigeneralivistocontabiles", query = "select myDatigeneralivistocontabile from Datigeneralivistocontabile myDatigeneralivistocontabile")
查询“select * from datigeneralivistocontabile;”在MySQL提示符下就可以了:
mysql> select * from datigeneralivistocontabile;
+----------------+----------------+----------------+--------------+
| DatiGeneraliId | SoggettiCodice | DGVCDataInizio | DGVCDataFine |
+----------------+----------------+----------------+--------------+
| 1 | 1 | 2011-11-02 | 2011-11-03 |
+----------------+----------------+----------------+--------------+
1 row in set (0.00 sec)
mysql>
我不知道该怎么办,因为我管理了数十个像这两个这样的实体,没有出现任何问题。我注意到的是,这是我第一次获得 @OneToOne 注释。也许正是这个导致了异常......
先谢谢大家了
编辑:尝试将列名称 TecnicoParereCodice 更改为 SoggettiCodice,以匹配第一个表中的列的名称,但没有任何更改:我重新搭建了所有内容,运行相同的测试并得到相同的错误
最佳答案
由于主键相同但属性名称不同,我像这样修改了数据库:
CREATE TABLE
`delidete`.`DatiGeneraliVistoContabile` (
`DatiGeneraliId` int NOT NULL, <---- P.K., Foreign key to table Datigenerali
`SoggettiCodice` int NOT NULL, <---- P.K., Foreign key to table Soggetti
`DGVCDataInizio` date NOT NULL,
`DGVCDataFine` date) ;
CREATE TABLE
`delidete`.`DatiGeneraliParereTecnico` (
`DatiGeneraliId` int NOT NULL, <---- P.K., Foreign key to above table (DatigeneraliId)
`SoggettiCodice` int NOT NULL, <---- P.K., Foreign key to above table (SoggettiCodice)
`DGTPDescrizione` varchar (255) NOT NULL,
`DGTPDataInizio` date NOT NULL,
`DGTPDataFine` date) ;
重新搭建了两个实体的支架并更改了 Datigeneralipareretecnico 类,如下所示:
**@IdClass(delidete.domain.DatigeneralivistocontabilePK.class)**
@Entity
@Table(catalog = "delidete", name = "datigeneralipareretecnico")
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(namespace = "DeliDete/delidete/domain", name = "Datigeneralipareretecnico")
public class Datigeneralipareretecnico implements Serializable
{
....
}
正如您在 Datigeneralipareretecnico 类中看到的,我在 Datigeneralivistocontabile 类中使用了 PK 类,一切顺利。我知道这不是解决问题的正确方法,但是嘿它有效!希望能帮助别人..
关于java - org.hibernate.TypeMismatchException : Provided id of the wrong type,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7992328/
我正在编写一个具有以下签名的 Java 方法。 void Logger(Method method, Object[] args); 如果一个方法(例如 ABC() )调用此方法 Logger,它应该
我是 Java 新手。 我的问题是我的 Java 程序找不到我试图用作的图像文件一个 JButton。 (目前这段代码什么也没做,因为我只是得到了想要的外观第一的)。这是我的主课 代码: packag
好的,今天我在接受采访,我已经编写 Java 代码多年了。采访中说“Java 垃圾收集是一个棘手的问题,我有几个 friend 一直在努力弄清楚。你在这方面做得怎么样?”。她是想骗我吗?还是我的一生都
我的 friend 给了我一个谜语让我解开。它是这样的: There are 100 people. Each one of them, in his turn, does the following
如果我将使用 Java 5 代码的应用程序编译成字节码,生成的 .class 文件是否能够在 Java 1.4 下运行? 如果后者可以工作并且我正在尝试在我的 Java 1.4 应用程序中使用 Jav
有关于why Java doesn't support unsigned types的问题以及一些关于处理无符号类型的问题。我做了一些搜索,似乎 Scala 也不支持无符号数据类型。限制是Java和S
我只是想知道在一个 java 版本中生成的字节码是否可以在其他 java 版本上运行 最佳答案 通常,字节码无需修改即可在 较新 版本的 Java 上运行。它不会在旧版本上运行,除非您使用特殊参数 (
我有一个关于在命令提示符下执行 java 程序的基本问题。 在某些机器上我们需要指定 -cp 。 (类路径)同时执行java程序 (test为java文件名与.class文件存在于同一目录下) jav
我已经阅读 StackOverflow 有一段时间了,现在我才鼓起勇气提出问题。我今年 20 岁,目前在我的家乡(罗马尼亚克卢日-纳波卡)就读 IT 大学。足以介绍:D。 基本上,我有一家提供簿记应用
我有 public JSONObject parseXML(String xml) { JSONObject jsonObject = XML.toJSONObject(xml); r
我已经在 Java 中实现了带有动态类型的简单解释语言。不幸的是我遇到了以下问题。测试时如下代码: def main() { def ks = Map[[1, 2]].keySet()
一直提示输入 1 到 10 的数字 - 结果应将 st、rd、th 和 nd 添加到数字中。编写一个程序,提示用户输入 1 到 10 之间的任意整数,然后以序数形式显示该整数并附加后缀。 public
我有这个 DownloadFile.java 并按预期下载该文件: import java.io.*; import java.net.URL; public class DownloadFile {
我想在 GUI 上添加延迟。我放置了 2 个 for 循环,然后重新绘制了一个标签,但这 2 个 for 循环一个接一个地执行,并且标签被重新绘制到最后一个。 我能做什么? for(int i=0;
我正在对对象 Student 的列表项进行一些测试,但是我更喜欢在 java 类对象中创建硬编码列表,然后从那里提取数据,而不是连接到数据库并在结果集中选择记录。然而,自从我这样做以来已经很长时间了,
我知道对象创建分为三个部分: 声明 实例化 初始化 classA{} classB extends classA{} classA obj = new classB(1,1); 实例化 它必须使用
我有兴趣使用 GPRS 构建车辆跟踪系统。但是,我有一些问题要问以前做过此操作的人: GPRS 是最好的技术吗?人们意识到任何问题吗? 我计划使用 Java/Java EE - 有更好的技术吗? 如果
我可以通过递归方法反转数组,例如:数组={1,2,3,4,5} 数组结果={5,4,3,2,1}但我的结果是相同的数组,我不知道为什么,请帮助我。 public class Recursion { p
有这样的标准方式吗? 包括 Java源代码-测试代码- Ant 或 Maven联合单元持续集成(可能是巡航控制)ClearCase 版本控制工具部署到应用服务器 最后我希望有一个自动构建和集成环境。
我什至不知道这是否可能,我非常怀疑它是否可能,但如果可以,您能告诉我怎么做吗?我只是想知道如何从打印机打印一些文本。 有什么想法吗? 最佳答案 这里有更简单的事情。 import javax.swin
我是一名优秀的程序员,十分优秀!