- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
同事们,我有两张 table ,选择获取CHAIN
:
选择 OD_CHAINS_REQ.CHAIN
来自 OD_CHAINS_REQ
加入 od_face_accs
ON od_face_accs.ID = OD_CHAINS_REQ.ACCOUNT
其中 od_face_accs.ACNT='1608290029'
按 OD_CHAINS_REQ.NUM 排序;
OD_CHAINS_REQ
表中的记录少于 10 条,od_face_accs
表中的记录多于 1000 条。
我正在尝试通过 JPA 执行此选择。但是,据我了解,我需要创建实体 OdChainsReqEntity
:
@Entity
@Table(name = "OD_CHAINS_REQ", schema = "", catalog = "")
@IdClass(OdChainsReqEntityPK.class)
public class OdChainsReqEntity {
private Integer chain;
private Integer num;
private Integer account;
@Id
@Column(name = "CHAIN")
public Integer getChain() {
return chain;
}
public void setChain(Integer chain) {
this.chain = chain;
}
@Basic
@Column(name = "NUM")
public Integer getNum() {
return num;
}
public void setNum(Integer num) {
this.num = num;
}
@Id
@Column(name = "ACCOUNT")
public Integer getAccount() {
return account;
}
public void setAccount(Integer account) {
this.account = account;
}
@OneToOne
@JoinColumn(name = "ACCOUNT", referencedColumnName = "ID")
private OdFaceAccsEntity odFaceAccsEntity;
public OdFaceAccsEntity getOdFaceAccsEntity() {
return odFaceAccsEntity;
}
public void setOdFaceAccsEntity(OdFaceAccsEntity odFaceAccsEntity) {
this.odFaceAccsEntity = odFaceAccsEntity;
}
/*@Overrides*/*/
}
和OdFaceAccsEntity
实体:
@Entity
@Table(name = "OD_FACE_ACCS", schema = "", catalog = "")
public class OdFaceAccsEntity {
private Integer id;
private String acnt;
@Id
@Column(name = "ID")
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
@Basic
@Column(name = "ACNT")
public String getAcnt() {
return acnt;
}
public void setAcnt(String acnt) {
this.acnt = acnt;
}
/*@Overrides*/
@OneToOne
@JoinColumn (referencedColumnName = "ACCOUNT")
private OdChainsReqEntity odChainsReqEntity;
public OdChainsReqEntity getOdChainsReqEntity() {
return odChainsReqEntity;
}
public void setOdChainsReqEntity(OdChainsReqEntity odChainsReqEntity) {
this.odChainsReqEntity = odChainsReqEntity;
}
}
所以我正在尝试使用测试来获取 Chain
@Test
public void getChainByDepoAcc() throws Exception {
OdFaceAccsEntity odFaceAccsEntity = new OdFaceAccsEntity();
odFaceAccsEntity.setAcnt("1608290029");
List<OdFaceAccsEntity> odFaceAccsEntities = odFaceAccsDAO.getAcc(odFaceAccsEntity);
for (int i = 0; i < odFaceAccsEntities.size(); i++) {
LOG.info(odFaceAccsEntities.get(i).getId());
LOG.info(odFaceAccsEntities.get(i).getOdChainsReqEntity().getChain());
}
}
但它返回异常:
Caused by: org.hibernate.MappingException: Could not determine type for: com.alcap.app.JPA.Entities.OdFaceAccsEntity, at table: OD_CHAINS_REQ, for columns: [org.hibernate.mapping.Column(odFaceAccsEntity)]
如何正确指定实体中的关联以避免异常?
更新我尝试过的最后一个 DAO 实现:
@Transactional(value = "txMan", readOnly = true)
public List <OdChainsReqEntity> getOdChainsReqByDEPOAcc(String in$depoAccnt) {
Query query = em.createQuery("SELECT cre FROM OdChainsReqEntity cre " +
"join OdFaceAccsEntity fae on fae.id = cre.account "+
"where fae.acnt = :depoAcc");
query.setParameter("depoAcc", in$depoAccnt);
List<OdChainsReqEntity> result = query.getResultList();
return result;
}
我也尝试了这个(但我不知道它是否适合 join
select):
public List<OdChainsReqEntity> getOdChainsReqByAnyParam(OdChainsReqEntity odChainsReqEntity) {
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<OdChainsReqEntity> criteriaQuery = cb.createQuery(OdChainsReqEntity.class);
Root<OdChainsReqEntity> entityRoot = criteriaQuery.from(OdChainsReqEntity.class);
Predicate criteria = cb.conjunction();
if (odChainsReqEntity.getChain() != null) {Predicate p = cb.equal(entityRoot.get("chain"), odChainsReqEntity.getChain()); criteria = cb.and(criteria, p);}
if (odChainsReqEntity.getNum() != null) {Predicate p = cb.equal(entityRoot.get("num"), odChainsReqEntity.getNum()); criteria = cb.and(criteria, p);}
if (odChainsReqEntity.getAccount() != null) {Predicate p = cb.equal(entityRoot.get("account"), odChainsReqEntity.getAccount()); criteria = cb.and(criteria, p);}
criteriaQuery.where(criteria);
List<OdChainsReqEntity> result = em.createQuery(criteriaQuery).getResultList();
return result;
}
最佳答案
您尚未发布 DAO 实现。假设它是正确的,则问题可能是以下之一:
您定义的访问类型
不一致。您将映射注释(@Column
、@OneToOne
、...)放置在 getter 方法以及规范未定义的实体字段上。因此,将映射注释移动到字段或 getter 上,但不能同时移动到两者上:
@Entity
@Table(name = "OD_FACE_ACCS", schema = "", catalog = "")
@Access(AccessType.PROPERTY)
public class OdFaceAccsEntity {
private Integer id;
private String acnt;
private OdChainsReqEntity odChainsReqEntity;
@Id
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getAcnt() {
return acnt;
}
public void setAcnt(String acnt) {
this.acnt = acnt;
}
/*@Overrides*/
@OneToOne(mappedBy = "odFaceAccsEntity")
public OdChainsReqEntity getOdChainsReqEntity() {
return odChainsReqEntity;
}
public void setOdChainsReqEntity(OdChainsReqEntity odChainsReqEntity) {
this.odChainsReqEntity = odChainsReqEntity;
}
}
@Entity
@Table(name = "OD_CHAINS_REQ", schema = "", catalog = "")
@IdClass(OdChainsReqEntityPK.class)
@Access(AccessType.PROPERTY)
public class OdChainsReqEntity {
private Integer chain;
private Integer num;
private Integer account;
private OdFaceAccsEntity odFaceAccsEntity;
// the rest of the code here
@OneToOne
@JoinColumn(name = "ACCOUNT", referencedColumnName = "ID")
public OdFaceAccsEntity getOdFaceAccsEntity() {
return odFaceAccsEntity;
}
// the rest of the code
}
如您所见,我在 getter 方法上移动了所有必要的映射注释(我只是删除了一些注释以节省空间,因为它们默认存在)。
@JoinColumn
注释。您必须仅将此注释放置在关系的一侧,该一侧应该是关系的所有者;在一对一关系中,将注释放置在哪一侧并不重要。关系的另一端需要映射为@OneToOne(mappedBy = "")
。我刚刚将 OdFaceAccsEntity
实体设置为关系的反面并进行相应更改(请参阅上面代码中的 @OneToOne
)。如果您不希望该实体成为反面,只需反转注释即可以下是 JPA 2.0 specification 的部分您可以阅读以了解如何正确映射:
关于java - 如何使用@OneToOne正确注释JPA实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39794667/
所以`MKAnnotation's。有趣的东西。 我的问题: 注释的标题和副标题有什么区别?这对注释的视觉组件有何影响? MKPinAnnotationView 和 MKAnnotationView
我正在使用 JBoss 工具将 DB 模式反向工程到 POJO 中。具体来说,我在 hibernatetool ANT 任务中使用了 hbm2java 选项。在 hbm2java 选项下,您可以指定
假设我有这段文字: cat file /* comment */ not a comment /* another comment */ /* delete this * /* multiline
我明白,如果你///在类、字段、方法或属性上方 Visual Studio 将开始为您建立 XML 样式的注释。 但是,我在哪里可以为我的命名空间和/或库添加 XML 注释... 例如: .NET F
int API_VERSION = 21; @TargetApi(API_VERSION)在Android中用于指定该方法/类支持API_VERSION及以下。 我们是否可以镜像类似的东西,指定仅支持
Closed. This question needs to be more focused。它当前不接受答案。
假设我有一个界面如下。 public interface MyInterface{ /** * This method prints hello */ void sayHello();
我已将 Jboss 应用程序迁移到 WebSphere Liberty。我必须删除所有 Jboss 引用库。在这样做的同时,我在某些注释中面临问题。 Jboss 应用程序使用 @SecurityDom
在本教程中,您将了解 JavaScript 注释,为什么要使用它们以及在示例的帮助下如何使用它们。 JavaScript 注释是程序员可以添加的提示,以使代码更易于阅读和理解。JavaScri
我正在建立一个博客,为了发表评论,我有这个 CSS。 #comments { position:absolute; border: 1px solid #900; border-width: 1
我正在尝试在单元格中插入评论。我正在尝试按照代码进行评论,但它没有在创建的 excel 中显示评论。我正在创建 .xls 扩展名。 $objPHPExcel->getActiveSheet()->ge
我正在使用 TS 在 MarionetteJS 上编写项目,我想使用注释来注册路由。例如: @Controller class SomeController { @RouteMapping("so
我有一个应用程序可以在页面上生成大量注释。用户可以单击页面上的任意位置以创建快速注释(例如 Acrobat Pro)可以在一般 中使用一些 javascript 行添加和删除这些注释
是否有 JavaScript 注释? 当然 JavaScript 没有它们,但是是否有额外的库或建议的语言扩展,例如 @type {folder.otherjsmodule.foo} function
Java 中注解的目的是什么?我有一个模糊的想法,认为它们介于注释和实际代码之间。它们在运行时会影响程序吗? 它们的典型用法是什么? 它们是 Java 独有的吗?有 C++ 等价物吗? 最佳答案 注解
其实我们在 Ruby 基础语法 已经比较详细的介绍了 Ruby 语言中的注释 Ruby 解释器会忽略注释语句 注释会对 Ruby 解释器隐藏一行,或者一行的一部分,或者若干行。 Ruby 中的注
我正在 try catch VBA 注释。到目前为止,我有以下内容 '[^";]+\Z 它捕获以单引号开头但在字符串结尾之前不包含任何双引号的任何内容。即它不会匹配双引号字符串中的单引号。 dim s
有没有办法在'svn commit'上将提交注释添加到更改的文件中。有人告诉我有一种方法可以用 cvs 做到这一点,但我们使用 svn。目前,我们使用“$Revision”关键字将修订号添加到更改的文
我正在尝试通过 ManyToMany 注释自动对报告的结果进行排序 @OrderBy : /** * @ORM\ManyToMany(targetEntity="Artist", inversedB
我正在使用 JBoss 5 GA,我创建了一个测试 session bean 和本地接口(interface)。我创建了一个 servlet 客户端。我尝试使用 @EJB 将接口(interface)
我是一名优秀的程序员,十分优秀!