OpenJPA- und @Converter-Feld werden nicht beibehaltenJava

Java-Forum
Anonymous
 OpenJPA- und @Converter-Feld werden nicht beibehalten

Post by Anonymous »

Ich arbeite am Backend einer Webanwendung und möchte einen List mit einem @Converter als String beibehalten. Kompiliert Okay und beim Bereitstellen erhalte ich die folgende WARNUNG:
WARNING [main] null.openjpa.Runtime Fields "com.barbeeloft.webapp.model.Employee.training" are not a default persistent type, and do not have any annotations indicating their persistence strategy. They will be treated as non-persistent. If you intended for these fields to be persistent, be sure to annotate them appropriately or declare them in orm.xml. Otherwise annotate them with @Transient.

Hier ist der Code für das Feld und den Konverter
@Converter(autoApply=true)
public class StringListConverter implements AttributeConverter {

private static final String SPLIT_CHAR = ";";

@Override
public String convertToDatabaseColumn( List list ) {
String s = list != null ? String.join( SPLIT_CHAR, list ) : "";
System.out.println("in convertToDatabaseColumn("+ s +")" );
return s;
};

@Override
public List convertToEntityAttribute( String string ) {
List l = string != null ? new ArrayList( Arrays.asList( string.split(SPLIT_CHAR)) ) : new ArrayList();
System.out.println( "in convertToEntityAttribute("+ l +")");
return l;
};

}


@Column(length=128,name="TRAINING",columnDefinition = "VARCHAR(128) NOT NULL")
@Convert(converter=StringListConverter.class,attributeName="training")
private List training = new ArrayList();


Ich verwende Apache-tomee-microprofile-9.1.2 und openjpa-3.2.2-jakarta (in tomee) mit netBeans IDE 20 und openjdk-21.0.1 (Mac).< /p>
Es wurde versucht, unter anderem autoApply, verschiedene @Column-Attribute und das attributeName-Attribut zu verwenden.

package com.barbeeloft.webapp.model;
import jakarta.persistence.Entity; import jakarta.persistence.Id;
import jakarta.persistence.Convert; import jakarta.persistence.Column;
import jakarta.persistence.Table;
import java.io.Serializable;
import java. util.List; import java.util.ArrayList;
import com.barbeeloft.webapp.utils.StringListConverter;
/** * * @author christopherbarbee */ @Entity
@Table(name="EMPLOYEE") öffentliche Klasse Employee implementiert Serializable
{
@Id
@Column(length=6,name="ID")
private String id;
@Column(length=128,name="TRAINING",columnDefinition = "VARCHAR(128) NOT NULL")
@Convert(converter=StringListConverter.class,attributeName="training")
private List training = new ArrayList();

public String getId() {
return id;
}

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

public List getTraining() {
return training;
}

public void setTraining(List training) {
this.training = training;
}
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post