JPAHibernateはjava.lang.Stringフィールドをjava.lang.String例外に設定できません

tim_tt

Webアプリに次のテクノロジーを使用しています。

  • Spring Boot 2.0
  • Hibernate 5.x
  • データベースのpostgresql

Webアプリフローの概要:1-顧客が登録すると、顧客エンティティがデータベース(顧客テーブル)に保存されます。2-サインアップ後にのみ、顧客は出荷を保存できます。したがって、出荷が追加されると、顧客エンティティは常に顧客テーブルに存在します。3-出荷->顧客はManyToOneの関係です

出荷エンティティをデータベースに保存しようとすると、次の例外が発生します。

org.springframework.orm.jpa.JpaSystemException: Error accessing field [private java.lang.String com.logistics.dao.model.Customer.email] by reflection for persistent property [com.logistics.dao.model.Customer#email] : [email protected]; nested exception is org.hibernate.property.access.spi.PropertyAccessException: Error accessing field [private java.lang.S`enter code here`tring com.logistics.dao.model.Customer.email] by reflection for persistent property [com.logistics.dao.model.Customer#email] : [email protected]

誰かがこれを手伝ってくれませんか?ここで説明されているように、Hibernate 4.xにダウングレードする必要がありますか?

参照用のコードは次のとおりです。

発送:

@Entity
@Table(name = "shipment")
public class ShipmentDB {
@Id
@Column(name = "shipment_id")
private String shipmentId;

@ManyToOne(targetEntity = Customer.class)
@JoinColumn(name = "email")
private String email;

@Column(name = "from_address_id")
private String fromAddressId;

@Column(name = "to_address_id")
private String toAddressId;

public String getShipmentId() {
    return shipmentId;
}

public void setShipmentId(String shipmentId) {
    this.shipmentId = shipmentId;
}

public String getFromAddressId() {
    return fromAddressId;
}

public void setFromAddressId(String fromAddressId) {
    this.fromAddressId = fromAddressId;
}

public String getToAddressId() {
    return toAddressId;
}

public void setToAddressId(String toAddressId) {
    this.toAddressId = toAddressId;
}

public String getEmail() {
    return email;
}

public void setEmail(String email) {
    this.email = email;
}

}

お客様:

@Entity
@Table(name = "customer")
public class Customer {

@Id
@Column(name = "email")
private String email;

@Column(name = "password")
@Transient
private String password;

@Column(name = "first_name")
private String firstName;

@Column(name = "last_name")
private String lastName;

public String getPassword() {
    return password;
}

public void setPassword(String password) {
    this.password = password;
}

public String getFirstName() {
    return firstName;
}

public void setFirstName(String firstName) {
    this.firstName = firstName;
}

public String getLastName() {
    return lastName;
}

public void setLastName(String lastName) {
    this.lastName = lastName;
}

public String getEmail() {
    return email;
}

public void setEmail(String email) {
    this.email = email;
}

}

ShipmentRepository:

@Repository()
public interface ShipmentRepository extends JpaRepository<ShipmentDB, Long> {
ShipmentDB findByShipmentId(String shipmentId);
}

ShipmentService:

@Service("shipmentService")
public class ShipmentService {

@Autowired
private ShipmentRepository repository;

public ShipmentDB findShipmentById(String shipmentId) {
    return repository.findByShipmentId(shipmentId);
}

public void saveShipment(ShipmentDB shipment) {
    repository.save(shipment);
}

}

ありがとう。

エイリアン

関係はエンティティ間にある必要がありますが、Stringに適用しています。

@ManyToOne(targetEntity = Customer.class)
@JoinColumn(name = "email")
private String email;

それは間違っています。

に変更します

@ManyToOne(targetEntity = Customer.class)
private Customer customer;

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

java.lang.IllegalArgumentException:java.lang.Shortフィールドをjava.lang.Shortに設定できません

分類Dev

[Bフィールドfr.mypackage.MyClass.dataをjava.lang.Stringに設定できません

分類Dev

java.lang.Integerフィールドをjava.lang.Integerに設定できません

分類Dev

JSON例外:java.lang.StringをJSONObjectに変換できません

分類Dev

Scala + Playframework + JClouds:java.lang.IllegalArgumentException:javax.inject.Providerフィールドを設定できません

分類Dev

java.lang.RuntimeException:java.lang.ClassCastException:java.lang.Longをjava.lang.Stringにキャストできません

分類Dev

JavaFXのjava.lang.IllegalArgumentExceptionがは:のjava.net.URLにjavafx.scene.control.Labelフィールドsample.Controller.locationを設定できません

分類Dev

(java.lang.String)は(java.lang.Object)に適用できません

分類Dev

java.lang.ClassCastException:[Bはjava.lang.Stringにキャストできません

分類Dev

ネストされた例外はjava.lang.ClassCastExceptionです:java.lang.Stringをキャストできません

分類Dev

通常のフィールドのjava.lang.String型例外の修飾Beanはありません

分類Dev

java.lang.illegalargumentexception:nullのTableModelを設定できません

分類Dev

[java.lang.String; java.lang.Stringにキャストできません

分類Dev

java.lang.ClassCastException:Zをjava.lang.Stringにキャストできません

分類Dev

演算子「<」は「java.lang.String」には適用できません

分類Dev

JavaからKotlinへのコード変換後の例外:java.lang.ClassCastException:java.lang.Stringをcom.example.misc.Restaurantにキャストできません

分類Dev

JSONArray java.lang.StringはJSONObjectに変換できません

分類Dev

Gradle、「url」は(java.lang.String)に適用できません

分類Dev

java.lang.stringはJSONarrayに変換できません

分類Dev

java.lang.ClassCastException:java.lang.Stringをjava.lang.Doubleにキャストできません

分類Dev

java.lang.ClassCastException:java.lang.Doubleをjava.lang.Stringにキャストできません

分類Dev

java.lang.ClassCastException:java.lang.Stringをtableauのjava.lang.Integerにキャストできませんか?

分類Dev

java.lang.ClassCastException:[B> java.lang.Stringにキャストできません

分類Dev

java.lang.ClassCastException:[Ljava.lang.String; java.lang.Stringにキャストできません

分類Dev

Javaでは、java.lang.Longをjava.lang.Stringにキャストできません

分類Dev

java.lang.StringをJSONObjectに変換できません

分類Dev

ネストされた例外はjava.lang.IllegalStateExceptionです:タイプ[java.lang.String]の値を必要なタイプに変換できません

分類Dev

ModelMapperはjava.lang.Stringをjava.lang.Longに変換できませんでした

分類Dev

Spring SecurityACLではjava.lang.Stringをjava.lang.Longにキャストできません

Related 関連記事

  1. 1

    java.lang.IllegalArgumentException:java.lang.Shortフィールドをjava.lang.Shortに設定できません

  2. 2

    [Bフィールドfr.mypackage.MyClass.dataをjava.lang.Stringに設定できません

  3. 3

    java.lang.Integerフィールドをjava.lang.Integerに設定できません

  4. 4

    JSON例外:java.lang.StringをJSONObjectに変換できません

  5. 5

    Scala + Playframework + JClouds:java.lang.IllegalArgumentException:javax.inject.Providerフィールドを設定できません

  6. 6

    java.lang.RuntimeException:java.lang.ClassCastException:java.lang.Longをjava.lang.Stringにキャストできません

  7. 7

    JavaFXのjava.lang.IllegalArgumentExceptionがは:のjava.net.URLにjavafx.scene.control.Labelフィールドsample.Controller.locationを設定できません

  8. 8

    (java.lang.String)は(java.lang.Object)に適用できません

  9. 9

    java.lang.ClassCastException:[Bはjava.lang.Stringにキャストできません

  10. 10

    ネストされた例外はjava.lang.ClassCastExceptionです:java.lang.Stringをキャストできません

  11. 11

    通常のフィールドのjava.lang.String型例外の修飾Beanはありません

  12. 12

    java.lang.illegalargumentexception:nullのTableModelを設定できません

  13. 13

    [java.lang.String; java.lang.Stringにキャストできません

  14. 14

    java.lang.ClassCastException:Zをjava.lang.Stringにキャストできません

  15. 15

    演算子「<」は「java.lang.String」には適用できません

  16. 16

    JavaからKotlinへのコード変換後の例外:java.lang.ClassCastException:java.lang.Stringをcom.example.misc.Restaurantにキャストできません

  17. 17

    JSONArray java.lang.StringはJSONObjectに変換できません

  18. 18

    Gradle、「url」は(java.lang.String)に適用できません

  19. 19

    java.lang.stringはJSONarrayに変換できません

  20. 20

    java.lang.ClassCastException:java.lang.Stringをjava.lang.Doubleにキャストできません

  21. 21

    java.lang.ClassCastException:java.lang.Doubleをjava.lang.Stringにキャストできません

  22. 22

    java.lang.ClassCastException:java.lang.Stringをtableauのjava.lang.Integerにキャストできませんか?

  23. 23

    java.lang.ClassCastException:[B> java.lang.Stringにキャストできません

  24. 24

    java.lang.ClassCastException:[Ljava.lang.String; java.lang.Stringにキャストできません

  25. 25

    Javaでは、java.lang.Longをjava.lang.Stringにキャストできません

  26. 26

    java.lang.StringをJSONObjectに変換できません

  27. 27

    ネストされた例外はjava.lang.IllegalStateExceptionです:タイプ[java.lang.String]の値を必要なタイプに変換できません

  28. 28

    ModelMapperはjava.lang.Stringをjava.lang.Longに変換できませんでした

  29. 29

    Spring SecurityACLではjava.lang.Stringをjava.lang.Longにキャストできません

ホットタグ

アーカイブ