草庐IT

java - 我可以将 'ON DELETE CASCADE' 添加到 Hibernate 管理的表中吗?

我有一些由Hibernate管理的具有各种外键约束的表。Cascadeondelete目前由Hibernate单独管理。为了处理测试数据,我经常手动创建和删除一些行。如果我可以将ONDELETECASCADE添加到外键约束中,这将对我有很大帮助,但我不知道Hibernate是否会遇到这个问题,因为数据库会在Hibernate之前删除内容。很多人似乎都专注于DDL。我的意图是不指示Hibernate使用SQLDELETECASCADES创建DDL。我只想知道如果我在数据库中指定一个ONDELETECASCADE除了在引用注释上有JPA的cascade=CascadeType.REMOVE

java - 向继承方法添加注释的最佳方法

我有许多抽象父类(superclass),我的具体类从中继承了各种方法。其中一些方法需要在具体类中放置JPA或JAXB注释。目前我通过以下方式做到这一点:@MyLocalAnnotations@OverridepublicmethodinheritedMethodHere(yaddayadda){super.inheritedMethodHere(yaddayadda);}有没有办法在不覆盖方法的情况下做到这一点?重写一个方法只是为了提供本地注释似乎是一种浪费。 最佳答案 不幸的是,没有比您现在正在做的更好的方法了。考虑到您的JPA

java - 在 Java 中使用泛型为类编写什么单元测试?

以article中定义的JpaDao类为例:publicabstractclassJpaDaoimplementsDao{protectedClassentityClass;@PersistenceContextprotectedEntityManagerentityManager;publicJpaDao(){ParameterizedTypegenericSuperclass=(ParameterizedType)getClass().getGenericSuperclass();this.entityClass=(Class)genericSuperclass.getActual

java - JPA一对多过滤

我们嵌套了几个实体。然而,在检索时,我们只想获取那些处于Activity状态的实体。@EntitypublicclassSystem{@Id@Column(name="ID")privateIntegerid;@OneToMany(mappedBy="system")privateSetsystempropertys;}@EntitypublicclassSystemproperty{@Id@Column(name="ID")privateIntegerid;@Id@Column(name="ACTIVE")privateIntegeractive;}当请求Systemproperti

java - 如何使用 hibernate JPA 注释映射嵌套集合 Map<Key,List<Values>>?

我有一门课,我不确定如何正确注释。我对Holder::data的目标:List应该不是通过比较器而是通过数组中元素的自然顺序来维护顺序。(如果有帮助,可以是ndx列。)Holder将拥有对数据的唯一引用,因此Cascadeall可能也适用。我也对移除map的不同设计持开放态度,如果这样可以使设计更简洁的话。@EntitypublicclassHolderextendsDomainObject{privateMap>data;}@EntitypublicclassElementextendsDomainObject{privatelongvalueId;privateintotherDa

java - JPA 中的深拷贝

我想在JPA中制作一个实体的深拷贝。我在这里发现了一个有趣的讨论:http://forums.java.net/jive/thread.jspa?messageID=253092&tstart=0听起来提议的解决方案是将所有@Id设置为零。这是我的基本代码://StartaJPAsession.EntityManagerem=emf.createEntityManager();em.getTransaction().begin();//GettheobjectIwanttocopy.MyClassmyObject=em.find(MyClass.class,id);//Userefle

java - JPA 2 : multiple column usage in foreign keys

我使用Hibernate作为持久性提供程序并使用JPA2为我的实体建模。现在有一个问题出现了,我希望你能帮助我。在我的应用程序中,您可以打开一个游戏,在其中创建玩家组并在map上四处走动(方block(2d))。首先是我的实体定义:游戏:@EntitypublicclassGameimplementsSerializable{@Id@SequenceGenerator(name="gen_gameid",sequenceName="seq_gameid")@GeneratedValue(generator="gen_gameid")privatelonggameid;/***Playi

java - 使用 Hibernate/JPA 根据具体情况从 @Embedded 属性中排除字段

我正在将Hibernatehbm.xml文件中的一些类迁移到JPA注释。我们有一个可嵌入的类Address用于多个地方。每个地方都使用Address中不同的属性子集。(为简洁起见省略了getter/setter)@EmbeddablepublicclassAddress{Stringemail;Stringaddress;Stringcity;Stringstate;Stringzip;Stringcountry;}@Entity@Table(name="customer")publicclassCustomer{@Embedded@AttributeOverrides({@Attri

java - 如何从持久性单元获取所有@Entity 类?

问题我正在编写一个独立的实用程序,给定一个包含JPA-2注释持久性单元的jar,它需要以编程方式获取特定持久性单元中所有@Entity类的列表。我想确定获取此信息的两种方法中的哪一种,以及为什么;或者是否有其他我没有想到的更好的方法。方案一Java程序将jar放在类路径中,使用JavaSE方法从jar中的类创建持久性单元。然后它使用javax.persistence类获取JPA元模型,从中拉回类标记列表。EntityManagerFactoryemf=Persistence.createEntityManagerFactory("MY_PERSISTENCE_UNIT");Metamo

java - 如何在不在 JPA 中加载相关实体的情况下使用外键保存实体?

这个问题在这里已经有了答案:Hibernatepersistentitywithoutfetchingassociationobject.justbyid(4个答案)关闭上个月。我有两个实体:Account{@IdLongid;}Preference{...@ManyToOneprivateAccountaccount;}保存首选项时,我有accountId,但没有帐户实体。在这种情况下我应该如何保存偏好?加载帐户实体并将其设置为首选项?对我来说,这似乎是对数据库的错误访问。是否有一个可持久化的accountId字段并将Account字段设置为只读?同时拥有accountId字段和Ac