요구 사항은 사용자가 기사를 작성할 수 있다는 것이므로 mysql 데이터베이스 내의 필드 유형 Text
을 선택 content
합니다. 어떻게 변환 할 수 있습니다 Java String
로MySQL Text
여기 있습니다 Jim Tough
@Entity
public class Article implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private Long userId;
private String title;
private String content;
private Integer vote;
//Constructors, setters, getters, equals and hashcode
}
내 MYSQL 데이터베이스에서 content
유형 Text
. 실제 타입 java.sql.Text
이기 때문에 이런 것이 있기를 바랬 java.sql.Blob
는데 슬프게도 존재하지 않습니다
답변
JPA를 사용하고 있으므로 Lob
주석 (및 선택적으로 Column
주석)을 사용하십시오. 다음은 JPA 사양이 이에 대해 말하는 내용입니다.
9.1.19 Lob 주석
Lob
지속적인 속성 또는 필드가 데이터베이스 지원 대형 오브젝트 유형에 큰 개체로 유지해야하는지 주석 지정합니다. 이식 가능한 애플리케이션은Lob
데이터베이스 Lob 유형에 매핑 할 때 주석을 사용해야합니다
. Lob 주석은 주석과 함께 사용할 수 있습니다
Basic
. Lob은 바이너리 또는 문자 유형일 수 있습니다. Lob 유형은 영구 필드 또는 속성의 유형에서 유추되며 문자열 및 문자 기반 유형을 제외하고 기본값은 Blob입니다.
따라서 다음과 같이 선언하십시오.
@Lob
@Column(name="CONTENT", length=512)
private String content;
참고 문헌
- JPA 1.0 사양 :
- 9.1.19 절 “Lob 주석”
답변
로 @Lob
난 항상로 끝날 LONGTEXT
MySQL을한다.
TEXT
그렇게 하려면 (JPA 2.0) 다음과 같이 선언합니다.
@Column(columnDefinition = "TEXT")
private String text
열이 데이터베이스에서 가질 텍스트 유형을 직접 선택할 수 있기 때문에 이것을 더 잘 찾으십시오.
들어 columnDefinition
그것은 또한 좋은 읽기 이 .
편집 : 적용하기 전에 Adam Siemions 주석에 주의를 기울이고 사용중인 데이터베이스 엔진을 확인하십시오 columnDefinition = "TEXT"
.
답변
mysql ‘텍스트’:
@Column(columnDefinition = "TEXT")
private String description;
mysql ‘longtext’의 경우 :
@Lob
private String description;