私は休止状態の注釈、春、sessionFactory を使用し、context.xml ですべてを定義しています (そのように..)
<bean id="mySessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="myDataSource" />
<property name="annotatedClasses">
<list>
<value>mypackage.model.Attributes</value>
</list>
</property>
<property name="hibernateProperties">
<value>
hibernate.dialect=org.hibernate.dialect.MySQLDialect
hibernate.show_sql=true
hibernate.format_sql=true
</value>
</property>
</bean>
私のエンティティにはいくつかのプロパティがあります.1つはIDで、もう1つは自動的に生成する必要がある文字列値「externalId」です。(例として、「dev_」の後に id を表す 5 桁の数値が続きます。したがって、id が 4 の場合、externalId は「dev_00004」になります)
@Entity
@Table(name="ATTRIBUTES")
public class Attributes {
private Long id;
private String externalId;
...
...
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column( name = "ID" )
public Long getId() {
return id;
}
public void setId( Long p_id ) {
id = p_id;
}
@Column(name = "EXTERNALID")
public String getExternalId() {
return externalId;
}
public void setExternalId(String p_externalId) {
externalId = p_externalId;
}
...
...
どうすればこれを達成できるか知っている人はいますか?私は@PrePersistを調べましたが、すべてのdaoなどはsaveOrUpdateを使用しており、2つは連携していないようです。おそらく @preUpdate が機能するのではないかと思いましたが、これも呼び出されないようです。どうすればこれを達成できるかについて、誰かにアイデアを教えてもらえますか?
ありがとう!