Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.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 弹簧&x2B;Hibernate无法确定类型集_Java_Spring_Hibernate_Spring Mvc - Fatal编程技术网

Java 弹簧&x2B;Hibernate无法确定类型集

Java 弹簧&x2B;Hibernate无法确定类型集,java,spring,hibernate,spring-mvc,Java,Spring,Hibernate,Spring Mvc,我最近一直在研究Hibernate和MVC。我遵循了各种教程,并尝试建立多对多关系,但我一直收到以下错误消息: Caused by: org.hibernate.MappingException: Could not determine type for: java.util.Set, at table: Group, for column 在我的servlet-context.xml中,我有以下内容: <beans:list> <beans:


我最近一直在研究Hibernate和MVC。我遵循了各种教程,并尝试建立多对多关系,但我一直收到以下错误消息:

Caused by: org.hibernate.MappingException: Could not determine type for: java.util.Set, at table: Group, for column
在我的servlet-context.xml中,我有以下内容:

<beans:list>
                <beans:value>com.model.Account</beans:value>
                <beans:value>com.model.Group</beans:value>
            </beans:list>
@Entity
@Table(name="Group")
public class Group {
    @Id
    @Column(name="group_id")
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private int id;

    private String objectId;
    private String groupName;
    private Set<Account> accountList = new HashSet<Account>();
    // ... Getters and setters

    @ManyToMany(cascade=CascadeType.ALL)
    @JoinTable(name="objectId", joinColumns=@JoinColumn(name="group_id"), 
        inverseJoinColumns=@JoinColumn(name="objectId"))  
     public Set<Account> getAccountList() {
         return accountList;
     }
}

我确实相信是这个集合造成了问题,但是各种教程都能解决这个问题,我还需要做一些额外的程序。

可以为@ManyToMany提供帐户类定义吗?

可以为@ManyToMany提供帐户类定义。

因为您在字段中提供了
@Id
注释,您必须在字段级别而不是在getter级别定义其他注释

@ManyToMany(cascade=CascadeType.ALL)
@JoinTable(name="objectId", joinColumns=@JoinColumn(name="group_id"), 
    inverseJoinColumns=@JoinColumn(name="objectId")) 
 private Set<Account> accountList = new HashSet<Account>();
@ManyToMany(cascade=CascadeType.ALL)
@JoinTable(name=“objectId”,joinColumns=@JoinColumn(name=“group\u id”),
inverseJoinColumns=@JoinColumn(name=“objectId”))
private Set accountList=new HashSet();
会解决你的问题


不要忘记在
帐户
类中遵循相同的注释。

因为您在字段中给出了
@Id
注释,所以您必须在字段级别而不是在getter级别定义其他注释

@ManyToMany(cascade=CascadeType.ALL)
@JoinTable(name="objectId", joinColumns=@JoinColumn(name="group_id"), 
    inverseJoinColumns=@JoinColumn(name="objectId")) 
 private Set<Account> accountList = new HashSet<Account>();
@ManyToMany(cascade=CascadeType.ALL)
@JoinTable(name=“objectId”,joinColumns=@JoinColumn(name=“group\u id”),
inverseJoinColumns=@JoinColumn(name=“objectId”))
private Set accountList=new HashSet();
会解决你的问题


不要忘记在
帐户
类中遵循相同的操作。

您好,我收到一个新的外键映射异常。我是否在Account.class上对字段级别进行了错误的注释?请参阅更新的部分。您能分享DAO实现的相关代码吗?我已经解决了这个问题。我不得不做一个@JsonIgnore,它崩溃了,因为它进入了一个无限循环。谢谢您好,我收到外键的新映射异常。我是否在Account.class上对字段级别进行了错误的注释?请参阅更新的部分。您能分享DAO实现的相关代码吗?我已经解决了这个问题。我不得不做一个@JsonIgnore,它崩溃了,因为它进入了一个无限循环。谢谢我已将我的帐户类别设置为@manytomy关系。我仍然不明白为什么会出现映射错误。我已将我的Account类放置在@ManyToMany关系中。我仍然不明白为什么会出现映射错误。
Request processing failed; nested exception is org.springframework.dao.DataIntegrityViolationException: Duplicate entry '1' for key 'PRIMARY'; SQL [n/a]; constraint [null]; nested exception is org.hibernate.exception.ConstraintViolationException: Duplicate entry '1' for key 'PRIMARY'
@ManyToMany(cascade=CascadeType.ALL)
@JoinTable(name="objectId", joinColumns=@JoinColumn(name="group_id"), 
    inverseJoinColumns=@JoinColumn(name="objectId")) 
 private Set<Account> accountList = new HashSet<Account>();