gpt4 book ai didi

java - 外部 JAR 中的 JPA 实体

转载 作者:太空宇宙 更新时间:2023-11-04 14:58:08 24 4
gpt4 key购买 nike

嗯,我有一个带有 @MappedSupperClass 注释的外部 JAR,我正在尝试从此外部 JAR 扩展一个类。见下图:

@Entity
@NamedQueries(value = {
@NamedQuery(name = "AgendaDentista.findByDentista", query = "SELECT c FROM AgendaDentista c "
+ "JOIN FETCH c.diaSemana "
+ "JOIN FETCH c.dentista "
+ "WHERE c.dentista.id = :idDentista"),
@NamedQuery(name = "AgendaDentista.findByDentistaWhereDiaSemanaAndHora", query = "SELECT c FROM AgendaDentista c "
+ "JOIN FETCH c.diaSemana "
+ "JOIN FETCH c.dentista "
+ "WHERE c.dentista.id = :idDentista "
+ "AND c.diaSemana.codigo = :diaSemana "
+ "AND :hora BETWEEN c.horaInicio AND c.horaFim") })
@Table(name = "agenda_dentista")
public class AgendaDentista extends AbstractBean {

我的AbstractBean类位于另一个包内(在外部jar中)。但我在 @Entity 注释中收到以下错误:

The entity has no primary key attribute defined

我已经将 JAR 导入到我的构建路径中,并将其放入部署程序集 (Eclipse) 中。

我尝试在 persistence.xml 中使用 jar 文件,但出现错误:jar 文件无法解析。

<persistence-unit name="odontonewPU">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jar-file>jwebbuild-1.0.jar</jar-file>
<properties>
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.format_sql" value="false" />
<property name="hibernate.hbm2ddl.auto" value="update" />
<property name="hibernate.cache.use_second_level_cache" value="false" />
<property name="hibernate.cache.use_query_cache" value="false" />
<property name="hibernate.jdbc.batch_size" value="50" />
</properties>
</persistence-unit>

解决方案

经过大量搜索,我找到了解决方案。这似乎是一个 Eclipse BUG,因为我必须将我的 AbstractBean 类放在 persistence.xml 中并强制 Eclipse 找到它。

参见:

<class>br.com.jwebbuild.bean.AbstractBean</class>   

所以,现在 Eclipse 停止说我的类没有定义主键属性

最佳答案

如果您的实体分布在不同的 JAR 中,您应该查看 composite persistence units - 我假设您使用 EclipseLink?

关于java - 外部 JAR 中的 JPA 实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22951752/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com