2017-01-06 9 views
0

私はアプリケーションをWindowsからubuntuサーバーに移しています。自動作成されたテーブル(Hibernateによる)にマッピングされるべきクラスの1つは、Windows MySQLでは問題なくテーブルとして作成されますが、Ubuntu MySQLでは作成されません。 他のすべてのクラスは問題なくテーブルとして作成されます。Hibernate - @Column(length = 40000)が使用されているときにUbuntu mysqlでテーブルを作成しません。

アプリケーションログはtomcatで始まりますが、エラーはありません。すべてのことがhibernateのniceです。また、他のテーブルの外部キーも作成されます。

他のエンティティに存在していない唯一のものは、「@Column(長さ= 40000)」ですが、それはので、この注釈のクラッシュさせることはできないようです。..

私は他のtables-を削除しようとしています彼らは私のエンティティクラスのコードがあり問題なく再作成自動..

です:

import javax.persistence.Column; 
import javax.persistence.Entity; 
import javax.persistence.GeneratedValue; 
import javax.persistence.Id; 

@Entity 
public class ConsultationHrm { 

    @Id 
    @GeneratedValue 
    private Long id; 

    @Column(length= 40000) 
    private String hrmMeasurements; 

    public Long getId() { 
     return id; 
    } 

    public void setId(Long id) { 
     this.id = id; 
    } 

    public String getHrmMeasurements() { 
     return hrmMeasurements; 
    } 

    public void setHrmMeasurements(String hrmMeasurements) { 
     this.hrmMeasurements = hrmMeasurements; 
    } 

} 

はあなたに、私は、問題の原因を見つけることを試みることの任意のアイデアを持っていますか?

編集:私は@Columnアノテーションを削除し、サーバ - テーブルの上に展開している

が正常に作成されました。テーブルを削除して@Column annotationでクラスを返すと、テーブルは再び作成されません。

これをどのように扱うか考えてください。

5.7.16-0ubuntu0.16.04.1

5.7.11-ログ

答えて

0

:..defaultサイズは、WindowsとUbuntuの上

MySQLバージョン:-(ここで私のために十分ではありません問題は、MySQLデータベースにあるように私のWindows版では

。そうです、VARCHAR(40000)に列を変更するには問題はありません。私のバージョンで Ubuntuの上で、私は同じようにそれを変更することはできません。

いくつかのソリューションは、使用することです:

@Column(columnDefinition = "TEXT") 
private String hrmMeasurements; 

この質問Maximum length for MySQL type text ためansewerに応じて〜私たちの65個のK文字を与えます。

関連する問題