我有一个使用连接表建模的一对多关系:
create table t1 (id int primary key, name varchar(10) /*...*/);
create table t2 (id int primary key, name varchar(10) /*...*/);
create table t1_t2 (t1_id int, t2_id int, primary key (t1, t2));
Run Code Online (Sandbox Code Playgroud)
这些表应该模拟一个t1到多个t2的关系.使用JPA对这些表建模的正确方法是什么?
我正在研究JPA项目.我需要在具有三个主键的类上使用@OneToMany映射.您可以在此之后找到错误和类.
javax.persistence.PersistenceException: No Persistence provider for EntityManager named JTA_pacePersistence: Provider named oracle.toplink.essentials.PersistenceProvider threw unexpected exception at create EntityManagerFactory:
javax.persistence.PersistenceException
javax.persistence.PersistenceException: Exception [TOPLINK-28018] (Oracle TopLink Essentials - 2.0.1 (Build b09d-fcs (12/06/2007))): oracle.toplink.essentials.exceptions.EntityManagerSetupException
Exception Description: predeploy for PersistenceUnit [JTA_pacePersistence] failed.
Internal Exception: Exception [TOPLINK-7220] (Oracle TopLink Essentials - 2.0.1 (Build b09d-fcs (12/06/2007))): oracle.toplink.essentials.exceptions.ValidationException
Exception Description: The @JoinColumns on the annotated element [private java.util.Set isd.pacepersistence.common.Action.permissions] from the entity class [class isd.pacepersistence.common.Action] is incomplete. When the source entity class uses a composite primary key, …Run Code Online (Sandbox Code Playgroud) 我正在使用EclipseLink作为JPA提供程序.此外,我正在使用以下TABLE_PER_CLASS继承结构
@javax.persistence.Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
@NamedQueries({
@NamedQuery(name=Parent.QUERY_FIND_ALL, query="SELECT p FROM Parent p")
})
public class Parent {
// the class code follows here
}
@javax.persistence.Entity
@NamedQueries({
@NamedQuery(name=Child.QUERY_FIND_ALL, query="SELECT c FROM Child c")
})
public class Child extends Parent {
// the class code follows here
}
Run Code Online (Sandbox Code Playgroud)
现在的问题是我只想接收父类的条目.但是使用命名查询"SELECT p FROM Parent p",也会返回子表中的所有条目.
选择或查找代码如下:
public List findWithNamedQuery(String query) {
return em.createNamedQuery(query).getResultList();
}
Run Code Online (Sandbox Code Playgroud)
因此查询即"SELECT p FROM Parent p".
我怎样才能真正接收父条目而不是这个inheritacne层次结构的所有条目?
简而言之:如何保持所有子条目不受影响,并仅返回父条目?
编辑1:
我正在使用EclipseLink 2.0.1,但每次我通过类型表达式尝试axtavt的解决方案时,我都会收到以下错误:
"Invalid Type Expression on [my.domain.Parent]. The class does not have …Run Code Online (Sandbox Code Playgroud) 我的 Spring-Boot 应用程序只有一个计数器指标。我只是不知道如何将这些信息发送给 Prometheus。我正在使用 Maven(构建工具)和 Spring Boot(Java)。
我有一个JSF ajax keyup事件链接到支持bean中的事件列表器.
JSF文件中的代码如下所示.
<h:inputText id="txtDescription" value="#{institutionController.current.description}" disabled="#{institutionController.modifyControlDisable}" >
<f:ajax event="keyup" listener="#{institutionController.changeDetailsEvent}" />
</h:inputText>
Run Code Online (Sandbox Code Playgroud)
支持bean中的代码如下所示.
public void changeDetailsEvent(AjaxBehaviorEvent event) {
}
Run Code Online (Sandbox Code Playgroud)
我希望根据按键实现不同的逻辑,如下所示为伪代码.
public void changeDetailsEvent(AjaxBehaviorEvent event) {
If (event.key = Key.enter) {
do something;
} else if (event.key = Key.Escape) {
so something else;
} else {
do nothing;
}
}
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我这是如何在支持bean中完成的吗?
在使用Moharra JSF 2的JBoss AS 7.1.1上,使用inputText元素创建的XHTML文件不会呈现该属性required="true".
没有错误,但输出HTML不包含必需的属性.如果编写纯HTML输入元素,则必需属性将呈现为JSF表单的一部分.任何人都知道为什么这个属性会被删除?该案例是一个容器管理的登录表单,因此没有支持bean.提前谢谢了.
jpa ×3
java ×2
jsf ×2
persistence ×2
ajax ×1
forms ×1
grafana ×1
html ×1
inheritance ×1
java-ee ×1
many-to-one ×1
maven ×1
primary-key ×1
prometheus ×1
spring-boot ×1