Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 持久化列表时创建唯一字符串表时出现问题<;字符串>;_Java_Jpa_Eclipselink_Java Ee 6 - Fatal编程技术网

Java 持久化列表时创建唯一字符串表时出现问题<;字符串>;

Java 持久化列表时创建唯一字符串表时出现问题<;字符串>;,java,jpa,eclipselink,java-ee-6,Java,Jpa,Eclipselink,Java Ee 6,假设我有一个实体: @Entity public class AnEntity implements Serializable{ @ElementCollection private List<String> strings = new Vector<String>(); // other stuff } 但正如我所说的,这只将字节放入一个实体字符串中。我无法想象这是一种“正确”的方法。不要使用向量,而是使用哈希集 或许你也应该这样做: private Se

假设我有一个实体:

@Entity
public class AnEntity implements Serializable{
   @ElementCollection
   private List<String> strings = new Vector<String>();
// other stuff
}

但正如我所说的,这只将字节放入一个实体字符串中。我无法想象这是一种“正确”的方法。

不要使用
向量
,而是使用
哈希集

或许你也应该这样做:

private Set<String> strings = new HashSet<String>();
private Set strings=new HashSet();

不要使用
向量
,而是使用
哈希集

或许你也应该这样做:

private Set<String> strings = new HashSet<String>();
private Set strings=new HashSet();

因此,您希望创建一个映射,其中每个
实体都有许多字符串,每个字符串可以属于许多实体。然后,您应该使用
@manytomy
,因为这是一种多对多关系。

因此,您需要创建一个映射,其中每个
AnEntity
都有许多字符串,每个字符串可以属于许多AnEntity。然后您应该使用
@manytomy
,因为这是一个多对多关系。

如果不起作用,持久化列表仍然有许多重复项。需要明确的是,实体本身的列表中不会有重复的字符串,而是包含所有重复项的表本身。要明确的是,实体本身的列表中不会有重复的字符串,它是包含所有重复项的表本身。我也这么认为,但我仍然在ANENTITY_字符串表中有许多重复项。这可以很容易地用SQL完成,但我正试图用JPA2.0来构建它,以帮助提高数据库的可移植性。@J_Y__C:我看不出在SQL中没有重复项是如何完成的。您将在字符串表(对于一对多关系)或联接表(对于多对多关系)中有重复项,我也这么认为,但最终在ANENTITY_字符串表中仍然有许多重复项。这可以很容易地用SQL完成,但我正试图用JPA2.0来构建它,以帮助提高数据库的可移植性。@J_Y__C:我看不出在SQL中没有重复项是如何完成的。您将在字符串表(对于一对多关系)或联接表(对于多对多关系)中有重复项
private Set<String> strings = new HashSet<String>();