相关疑难解决方法(0)

我是否需要persistence.xml中的<class>元素?

我有非常简单的persistance.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0"
    xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">

    <persistence-unit name="eventractor" transaction-type="RESOURCE_LOCAL">
        <class>pl.michalmech.eventractor.domain.User</class>
        <class>pl.michalmech.eventractor.domain.Address</class>
        <class>pl.michalmech.eventractor.domain.City</class>
        <class>pl.michalmech.eventractor.domain.Country</class>

        <properties>
            <property name="hibernate.hbm2ddl.auto" value="validate" />
            <property name="hibernate.show_sql" value="true" />
        </properties>
    </persistence-unit>

</persistence>
Run Code Online (Sandbox Code Playgroud)

它的工作原理.

但是当我删除<class>元素时,应用程序看不到实体(所有类都带有注释@Entity).

是否有任何自动机制来扫描@Entity类?

java orm annotations hibernate jpa

106
推荐指数
7
解决办法
15万
查看次数

实体类名称转换为带有下划线的SQL表名称

我定义了以下实体:

@Entity
@Table(name = "EmailTemplate")
public class EmailTemplate {
Run Code Online (Sandbox Code Playgroud)

尽管有表格注释,但我收到了java.sql.SQLException: Invalid object name 'email_template'.如何防止将诸如EmailTemplate之类的实体类转换为email_template表名?

编辑:

我正在使用Spring Boot:启动JPA.从我的build.gradle文件,

compile("org.springframework.boot:spring-boot-starter-data-jpa")
Run Code Online (Sandbox Code Playgroud)

jpa spring-data-jpa spring-boot

42
推荐指数
3
解决办法
4万
查看次数

Maven - 如何从一个项目构建多个独立Maven项目

我有3个maven项目

  • WebComponents
  • DataComponents
  • ServiceComponents

当我构建每个项目时,我必须进入每个文件夹并在每个项目上运行mvn clean install.

我已经研究过多模块项目,我看到的大部分资源都表明我必须对现有项目的结构进行更改.

是否有可能建立一个新项目来构建每个独立项目,而不必对现有项目中的任何内容进行任何更改,包括其各自的pom文件?

我可以通过编写一个构建每个项目的简单批处理文件来实现这一点但是可以使用Maven吗?

configuration build-process compilation build maven

24
推荐指数
2
解决办法
2万
查看次数

如何设置没有@id元素的@entity?

我有这个豆:

@Entity
@Table(name = "accesos")
public class Acceso implements Serializable {
    /** */
    @Column(name = "idUser")
    private String idUser;
    /** */
    @ManyToOne
    @JoinColumn(name = "idArea")
    private Area area;
    /** */
    @ManyToOne
    @JoinColumn(name = "idRol")
    private Rol rol;
Run Code Online (Sandbox Code Playgroud)

但是我得到这个错误:

原因:org.hibernate.AnnotationException:未为实体指定标识符:com ... Acceso

我该如何设置这个豆?我需要的是根据用户ID获取他有权访问的所有ROL-AREA。

我尝试将更@Entity改为@Embedded,但是当我进行搜索时没有返回任何结果,即使在日志中也没有执行SQL语句。

java hibernate

3
推荐指数
2
解决办法
1万
查看次数