Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.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 mysql数据类型集的Hibernate注释_Java_Mysql_Spring_Hibernate_Jpa - Fatal编程技术网

Java mysql数据类型集的Hibernate注释

Java mysql数据类型集的Hibernate注释,java,mysql,spring,hibernate,jpa,Java,Mysql,Spring,Hibernate,Jpa,我有一个MySQL表,其中设置了workingDays属性的dataType。大概是这样的: CREATE TABLE IF NOT EXISTS `course` ( `courseId` int(11) NOT NULL AUTO_INCREMENT, `courseName` varchar(255) NOT NULL DEFAULT '0', `courseDescription` varchar(255) DEFAULT NULL, `courseDuration` int(11) D

我有一个
MySQL
表,其中设置了
workingDays
属性的
dataType
。大概是这样的:

CREATE TABLE IF NOT EXISTS `course` (
`courseId` int(11) NOT NULL AUTO_INCREMENT,
`courseName` varchar(255) NOT NULL DEFAULT '0',
`courseDescription` varchar(255) DEFAULT NULL,
`courseDuration` int(11) DEFAULT NULL,
`courseBatchSize` int(11) NOT NULL DEFAULT '0',
`courseEnrolmentDate` date DEFAULT NULL,
`workingDays` set('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday') DEFAULT NULL,
`courseFee` float DEFAULT NULL,
`isScholarshipAvailable` enum('Y','N') DEFAULT NULL,
`scholarshipCriteria` varchar(255) DEFAULT NULL,
`scholarshipExamDate` date DEFAULT NULL,
`successRate` tinyint(4) DEFAULT NULL,
`rating` tinyint(4) DEFAULT NULL,
`otherInfo` varchar(255) DEFAULT NULL,
`courseDiscount` float DEFAULT NULL,
`institute` int(11) DEFAULT NULL,
`exam` int(11) DEFAULT NULL,
PRIMARY KEY (`courseId`),
KEY `FK_INS` (`institute`),
KEY `FK_EX` (`exam`),
CONSTRAINT `FK_EX` FOREIGN KEY (`exam`) REFERENCES `exam` (`examId`),
CONSTRAINT `FK_INS` FOREIGN KEY (`institute`) REFERENCES `institute` (`instituteId`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=latin1 COMMENT='contains course info';
现在,我想相应地使用
jpa
注释映射
pojo
。现在我正在这样做

@Column(name = "workingDays", nullable = false, unique = false)
@Type(type="org.hibernate.type.settype")
private Set<String> workingDays;
我的pom.xml文件添加了以下依赖项

    <!-- MySQL database driver -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.30</version>
    </dependency>

    <dependency>
        <groupId>javax.transaction</groupId>
        <artifactId>jta</artifactId>
        <version>1.1</version>
    </dependency>


    <dependency>
        <groupId>javax.persistence</groupId>
        <artifactId>persistence-api</artifactId>
        <version>1.0.2</version>
    </dependency>

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>4.3.5.Final</version>
    </dependency>

    <dependency>
        <groupId>org.hibernate.common</groupId>
        <artifactId>hibernate-commons-annotations</artifactId>
        <version>4.0.4.Final</version>
    </dependency>

    <!-- Hibernate library dependecy start -->
    <dependency>
        <groupId>dom4j</groupId>
        <artifactId>dom4j</artifactId>
        <version>1.6.1</version>
    </dependency>

    <dependency>
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging</artifactId>
        <version>1.1.3</version>
    </dependency>

    <dependency>
        <groupId>commons-collections</groupId>
        <artifactId>commons-collections</artifactId>
        <version>3.2.1</version>
    </dependency>

    <dependency>
        <groupId>antlr</groupId>
        <artifactId>antlr</artifactId>
        <version>2.7.7</version>
    </dependency>
    <!-- Hibernate library dependecy end -->

mysql
mysql连接器java
5.1.30
javax.transaction
jta
1.1
javax.persistence
持久性api
1.0.2
org.hibernate
冬眠核心
4.3.5.最终版本
org.hibernate.common
hibernate commons注释
4.0.4.4最终版本
dom4j
dom4j
1.6.1
公用记录
公用记录
1.1.3
公地收藏
公地收藏
3.2.1
antlr
antlr
2.7.7
我不知道如何解决这个问题。任何有关映射到
MySQL
数据库中的集合的洞察或其他解决方法都将非常有用

编辑:还建议我是否可以在数据库中存储工作日属性而不使用SET。此工作日属性适用于特定的公司类别,我需要向最终用户显示该公司的工作日。关于数据类型的建议也会非常有用


谢谢。

对于简单类型,您不需要
@Type(Type=“org.hibernate.Type.setType”)
声明。您可以将其从字段声明中删除

@仅当使用高级自定义类型时,才需要类型批注

class Account {

  @Type(type="com.something.type.CustomDateType")
  @Column(name = "OPEN_DATE")
  private CustomDate date;

}

它是org.hibernate.type.SetType不是org.hibernate.type.SetType谢谢。但是,现在我得到了由以下原因引起的错误:org.hibernate.MappingException:无法实例化Type:org.hibernate.Type.SetType您能提供一个如何使用此注释的示例吗?如果我在mysql数据库中使用数据类型集,那么我对hibernateSo相当陌生,在java端使用哪种注释以及数据类型应该是什么?在您的问题中,数据库表结构不清楚。请用完整的结构更新它。
class Account {

  @Type(type="com.something.type.CustomDateType")
  @Column(name = "OPEN_DATE")
  private CustomDate date;

}