- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 Spring 新手,正在尝试使用 Spring 数据创建六边形架构
我有一个 gradle 多模块设置,其中一个用于域的包,一个用于持久性,另一个用于配置,DddApplication 所在的位置。
启动时,我得到 Not a managed type: class com.example.ddd.domain.model.Customer
,除非我用 javax.persistence.@Entity 等注释类。
但是我不想在类里面添加注释。我在 persistence
中的 hibernate.cfg.xml 和 Customer.hbm.xml 中设置了实体包裹。
我认为 spring boot 没有使用其他包中的 hibernate.cfg.xml 。
有什么方法可以配置 Spring Boot 以根据 persistence
中的 hibernate.cfg.xml 识别实体包裹?
package com.example.ddd.configuration
// ...
@SpringBootApplication
@EntityScan("com.example.ddd.domain.model")
@EnableJpaRepositories("com.example.ddd.persistence.repository")
class DddApplication {
private val log: Logger = LoggerFactory.getLogger(DddApplication::class.java)
@Bean
fun loadData(repository: CustomerRepositoryJpa): CommandLineRunner? {
return CommandLineRunner { args: Array<String?>? ->
//...
}
}
}
fun main(args: Array<String>) {
runApplication<DddApplication>(*args)
}
package com.example.ddd.persistence.repository
//...
@Repository
interface CustomerRepositoryJpa : JpaRepository<Customer?, Long?> {}
package com.example.ddd.domain.model
open class Customer private constructor() {
val id: Long? = null
lateinit var firstName: String
lateinit var lastName: String
override fun toString(): String {
return String.format("Customer[id=%d, firstName='%s', lastName='%s']", id,
firstName, lastName)
}
companion object {
fun new(firstName: String, lastName: String) : Customer {
val e = Customer()
e.firstName = firstName
e.lastName = lastName
return e
}
}
}
persistence
的资源中包裹。
最佳答案
你可以看看这个答案和附加的代码片段here .
这个想法是让 spring-data 使用 orm.xml 配置文件,您可以在其中定义域对象 JPA 特性。
一些备注
这里唯一困扰您的是 JPA 注释。
这些注释是 声明性 表示您的域对象(实体、值类型)也可以被视为 JPA 实体的方式。
您可能遵守 DDD、六边形架构和 KISS让他们驻留在您的域中的原则。
事实上,它们不会对任何技术持久性框架(如 Hibernate)产生强烈依赖。因为它们是注释,也因为只有 jpa spec library此处需要,作为您域的依赖项。
这样的域存储库以后可以用 Hibernate(NoSQL、AWS S3 等)以外的东西来实现,将这些注释保留在您的域中。
这是代码简单性和六边形原则应用之间的权衡,因为与注释相比,XML orm 文件看起来更难维护。
但是,此类文件将避免 JPA 注释污染您的域或在六边形之外添加额外的 JPA 实体层。
关于hibernate - Spring Data - 不同包中的 hibernate.cfg.xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61537413/
我有一个Java项目,正在使用hibernate。这里的事情是我想将hibernate.cfg.xml文件放在“src”文件夹之外,但是当我配置该文件时,它显示FileNotFoundExceptio
我想了解 #[cfg(test)] 和 #[cfg(feature = "test")] 之间的区别,最好通过示例进行演示。 最佳答案 #[cfg(test)] 标记仅当启用 test 配置选项时才编
如果我启动 cppcheck,我会收到以下错误: cppcheckListLib.c(信息)无法加载 std.cfg。您的 Cppcheck 安装已损坏,请重新安装。 Cppcheck 二进制文件是在
我想了解 #[cfg(test)] 和 #[cfg(feature = "test")] 之间的区别,最好通过示例进行演示。 最佳答案 #[cfg(test)] 标记仅当启用 test 配置选项时才编
当我来的时候,我正在寻找一个很好的解决方法来保持我的 .tmux.conf 文件在系统之间保持一致(我有 OS X 和 Ubuntu,它们有不同的复制/粘贴支持技术)在这条提供解决方案的评论中:htt
所以我有这个主 package Hibernate; import java.util.List; import org.hibernate.Session; import org.hibernate
我的项目根文件夹中有hibernate.cfg.xml文件。 如果我运行的应用程序包含: SessionFactory sessionFactory = new Configuration().con
我收到上述错误。我的 Web 应用程序中已有 xml 文件 hibernate.cfg.xml。除此之外,我在 WebINF lib 文件夹下有 hibernate 所需的完整 jar 文件。 这是完
我在 IntelliJ IDE 中的 hibernate.cfg.xml 有问题。 这是我的 hibernate 配置文件: org.postgresql
我正在尝试使用 pgadmin3 连接到 ubuntu 中的 Postgresql9.1。我的 Pgadmin3 GUI 工具没有提供任何通过右键单击数据库来创建表的选项,但它在我看到的一些视频中可用
您好,我的项目 CFG 文件中的路径列表太长,我如何定义像 $(BDS) 这样的路径快捷方式谢谢 最佳答案 “选项”对话框 ->“环境选项”->“环境变量”。该页面有一个“用户覆盖”部分。这就是您定义
对于 LR 解析器,FIRST 集定义如下 ( source ): FIRST(A) is the set of terminals which can appear as the first ele
我有一种用 CFG 表示的相当简单的语言。 S → A z A → A y A | A x A | A w | v 因为有左递归,递归下降解析器不会削减它。但是,我还需要找到所有可能的解释
Hibernate 的常用配置文件主要分为 2 种:核心配置文件(hibernate.cfg.xml)和映射文件(Xxx.hbm.xml),它们主要用于配置数据库连接、事务管理、Hibernate 本
出于测试目的,我需要 cfg 始终为真/假。对于 true 我使用 #[ cfg( target_pointer_width = "64") ] ... 但显然不够通用。表达 cfg 以获得必要值(v
我有以下常量: const IS_WSL: bool = is_wsl!(); 我希望能够将它与 cfg 属性一起使用来执行条件编译。像这样的东西: #[cfg(const = "IS_WSL")]
我知道给定一个特定的上下文无关语法,要检查它是否有歧义,需要检查是否存在任何可以以不止一种方式派生的字符串。这是不可判定的。 但是,我有一个更简单的问题。给定一个特定的上下文无关文法和一个特定的字符串
以下文法有左递归: T -> Tx | TYx | YX | x X -> xx Y -> Yy | Yx | y 你如何去除左递归。我阅读了维基百科的解释,但我对 CFG 还很陌生,所以它没有多大意
我想将 $cfg['RowActionLinksWithoutUnique'] 设置为 TRUE 以便我可以在 phpMyAdmin 中编辑数据而无需任何主键,但在检查 config.inc.php
考虑以下上下文无关文法的扩展,它允许规则在左侧有一个(或多个)终结符在非终结符的右侧。即形式规则: A b -> ... 右手边可以是任何东西,就像在上下文无关文法中一样。特别是不是 要求,右侧将在末
我是一名优秀的程序员,十分优秀!