It has no effect, you should transient
keyword instead.
Example:
User.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | @Getter @Setter @NoArgsConstructor @AllArgsConstructor @Entity @Table (name = "Users" ) public class User implements Serializable { @Id @GeneratedValue (strategy = GenerationType.AUTO) private Integer id; private String email; private String password; private transient Date loginTime; } |
TestRepository.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | @SpringBootTest class Demo11ApplicationTests { @Test public void test_serializable() throws IOException, ClassNotFoundException { User u = new User(); u.setEmail( "test@fengcaoculture.com" ); u.setLoginTime( new Date()); // write to file FileOutputStream fileOutputStream = new FileOutputStream( "person.txt" ); ObjectOutputStream objectOutputStream = new ObjectOutputStream(fileOutputStream); objectOutputStream.writeObject(u); objectOutputStream.flush(); objectOutputStream.close(); FileInputStream fileInputStream = new FileInputStream( "person.txt" ); ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream); User u2 = (User) objectInputStream.readObject(); objectInputStream.close(); assertTrue(u2.getEmail().equals(u.getEmail())); assertNull(u2.getLoginTime()); } } |