Java 春季少年警讯;ORM.xml替代方案?
我想以一种可以尽可能轻松地改变框架的方式来设计我的微服务。因此,我有一个接口,可以处理将来可能发生的所有变化,但我不能为实体这样做,因为我不知道有没有一种方法可以在不使用Java 春季少年警讯;ORM.xml替代方案?,java,spring,hibernate,jpa,architecture,Java,Spring,Hibernate,Jpa,Architecture,我想以一种可以尽可能轻松地改变框架的方式来设计我的微服务。因此,我有一个接口,可以处理将来可能发生的所有变化,但我不能为实体这样做,因为我不知道有没有一种方法可以在不使用@Entity/@Id的情况下使用JPA+Hibernate。。或者声明一个ORM.xml文件。 是否有一种方法可以定义处理实体的配置类 随机示例: @Entity @IdClass(DemoId.class) @Table(name = "demo",catalog="demodb") public class Demo i
@Entity
/@Id
的情况下使用JPA+Hibernate。。或者声明一个ORM.xml
文件。
是否有一种方法可以定义处理实体的配置类
随机示例:
@Entity
@IdClass(DemoId.class)
@Table(name = "demo",catalog="demodb")
public class Demo implements Serializable{
@Id
private long pk1;
@Id
private long pk2;
@Id
private long pk3;
@Lob
String description;
@ElementCollection(targetClass=String.class)
List<String> infos = new ArrayList<>();
}
public class DemoId implements Serializable{
private long pk1;
private long pk2;
private long pk3;
}
@实体
@IdClass(DemoId.class)
@表(name=“demo”,catalog=“demodab”)
公共类演示实现了可序列化{
@身份证
私人长pk1;
@身份证
私人长pk2;
@身份证
私人长pk3;
@高球
字符串描述;
@ElementCollection(targetClass=String.class)
List infos=new ArrayList();
}
公共类DemoId实现可序列化的{
私人长pk1;
私人长pk2;
私人长pk3;
}
如何将我的实体(在本例中是Demo
)和JPA注释分为两个类?所以,如果有什么东西使JPA不受欢迎,我可以轻松地切换(只需更改1适配器或类似的东西)
根据我对JPA的理解和经验,在这个问题上不可能做到两全其美。JPA直接依赖于文件内部的注释。在我看来,最好的选择是为每个文件创建两个单独的.java文件。这不是一个很好的解决方案,但我认为你不会得到更好的解决方案 例: 文件#1 DemoAnnotated.java
@Entity
@IdClass(DemoId.class)
@Table(name = "demo",catalog="demodb")
public class Demo implements Serializable{
@Id
private long pk1;
@Id
private long pk2;
@Id
private long pk3;
@Lob
String description;
@ElementCollection(targetClass=String.class)
List<String> infos = new ArrayList<>();
}
@实体
@IdClass(DemoId.class)
@表(name=“demo”,catalog=“demodab”)
公共类演示实现了可序列化{
@身份证
私人长pk1;
@身份证
私人长pk2;
@身份证
私人长pk3;
@高球
字符串描述;
@ElementCollection(targetClass=String.class)
List infos=new ArrayList();
}
文件#2 Demo.java
public class Demo implements Serializable{
private long pk1;
private long pk2;
private long pk3;
String description;
List<String> infos = new ArrayList<>();
}
公共类演示实现了可序列化{
私人长pk1;
私人长pk2;
私人长pk3;
字符串描述;
List infos=new ArrayList();
}
从长远来看,现在只保留注释可能会节省时间。如果以后需要快速切换框架,则需要重构,但应该能够相当快地完成。我无法想象变化会如此剧烈。可能只是一个@Entity->@SomeOtherName,在这种情况下,您可以进行搜索和替换。搜索和替换可能是您的救星。JPA提供商需要注释或orm.xml或两者兼而有之。这就是我要说的。