如果我有一个实体,我想保留到 JPA2 中的数据库,我只需添加 @Entity 注释,以及指定其关系的任何其他注释,等等。我有几个来自我不拥有的依赖项的类,我想用它们来做这件事。我在想一些想法,但我对其中任何一个都不是很满意。创建一个“空”子类,将对所有内容的调用委托给真正的类。空子类将是持有配置注释的子类。我不确定这是否可行,因为我认为您需要向超类添加注释。使用属性转换器。如果我不关心使用我为关系导入的那个实体,这就可以了。我现在已经在为一些枚举做这个了。我想我可以用persistence.xml? 但我想不惜一切代价避免这种情况。只是举另一个我正在尝试做的例子,在 Spring 中,您通常通过在 bean 上放置 @Componeont 并使用其他 JPA 注释装饰类来配置 bean。但是,如果您不拥有该类,则 Spring 有一个带有 @Bean 注释的简单机制,您可以在该方法中创建和配置该类,@Configuration 类调用该方法以获取对该实体的引用。通过这种方式,您可以将第三方库用作 bean,而无需访问源代码。
2 回答
慕神8447489
TA贡献1780条经验 获得超1个赞
首先,无论你是否拥有你想要持久化的类,你都不应该用 注释你的业务实体@Entity
。这背后的原因很简单:数据库是一个 I/O 通道。I/O通道是一个细节。您的业务逻辑应该独立于细节。
您应该将业务实体映射到 DTO,该 DTO 传递给 DAO,DAO 然后将其映射到数据库实体并持久化。不要相信我这一点,这个意见实际上源于鲍勃叔叔。
所以答案是:将实体转换为 DTO,将此 DTO 传递给相应的 DAO,后者将其再次转换为某个数据库对象并持久化。
添加回答
举报
0/150
提交
取消